Main Page | Modules | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members

IsoEx::CSG::Difference Class Reference
[Implicit objects/functions]

This class builds a CSG difference of two other implicits. More...

#include <IsoEx/Implicits/CSG.hh>

Inheritance diagram for IsoEx::CSG::Difference:

IsoEx::Implicit List of all members.

Public Member Functions

 Difference (const Implicit &_implicit1, const Implicit &_implicit2)
 Constructor: given the two implicit objects, builds _implicit1 minus _implicit2.

Mandatory interface of implicit objects, see also IsoEx::Implicit.
bool is_inside (const OpenMesh::Vec3f &_p) const
 Is the point _point inside or outside w.r.t.

float scalar_distance (const OpenMesh::Vec3f &_p) const
 Returns the scalar distance value of _point.

bool directed_distance (const OpenMesh::Vec3f &_p0, const OpenMesh::Vec3f &_p1, OpenMesh::Vec3f &_point, OpenMesh::Vec3f &_normal, float &_distance) const
 This method returns the directed distance of _p0 in the direction _p1-_p0.


Detailed Description

This class builds a CSG difference of two other implicits.

See also:
IsoEx::Implicit


Member Function Documentation

bool IsoEx::CSG::Difference::directed_distance const OpenMesh::Vec3f &  _p0,
const OpenMesh::Vec3f &  _p1,
OpenMesh::Vec3f &  _point,
OpenMesh::Vec3f &  _normal,
float &  _distance
const [inline, virtual]
 

This method returns the directed distance of _p0 in the direction _p1-_p0.

The resulting intersection point (casting a ray from _p0 in direction (_p1-_p0)) is stored in _point, the corresponding normal vector at this point is stored in _normal, the distance value is stored in _distance (again negative distance means _p0 is inside). Since the ray intersection may fail (because of precision problems) it is returned whether an intersection was found or not.

Implements IsoEx::Implicit.

bool IsoEx::CSG::Difference::is_inside const OpenMesh::Vec3f &  _p  )  const [inline, virtual]
 

Is the point _point inside or outside w.r.t.

the implicit function? The result should be the same as scalar_distance(_point) < 0, but it can be implemented more efficiently.

Implements IsoEx::Implicit.

float IsoEx::CSG::Difference::scalar_distance const OpenMesh::Vec3f &  _p  )  const [inline, virtual]
 

Returns the scalar distance value of _point.

Points inside the object should have negative distances, points outside positive distance.

Implements IsoEx::Implicit.


The documentation for this class was generated from the following file:
Generated on Mon Jul 5 18:07:08 2004 for IsoEx by doxygen 1.3.6-20040222