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

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

This is the abstract base class for all objects representing implicit function. More...

#include <IsoEx/Implicits/Implicit.hh>

Inheritance diagram for IsoEx::Implicit:

IsoEx::CSG::Difference IsoEx::CSG::Intersection IsoEx::CSG::Union IsoEx::ImplicitSphere List of all members.

Public Member Functions

Constructor & destructor
 Implicit ()
 constructor

virtual ~Implicit ()
 destructor

Abstract interface of implicit objects
virtual bool is_inside (const OpenMesh::Vec3f &_point) const=0
 Is the point _point inside or outside w.r.t.

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

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


Detailed Description

This is the abstract base class for all objects representing implicit function.

The three abstract virtual functions have to be overridden by derived classes.


Member Function Documentation

virtual bool IsoEx::Implicit::directed_distance const OpenMesh::Vec3f &  _p0,
const OpenMesh::Vec3f &  _p1,
OpenMesh::Vec3f &  _point,
OpenMesh::Vec3f &  _normal,
float &  _distance
const [pure 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.

Implemented in IsoEx::CSG::Union, IsoEx::CSG::Intersection, IsoEx::CSG::Difference, and IsoEx::ImplicitSphere.

virtual bool IsoEx::Implicit::is_inside const OpenMesh::Vec3f &  _point  )  const [pure 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.

Implemented in IsoEx::CSG::Union, IsoEx::CSG::Intersection, IsoEx::CSG::Difference, and IsoEx::ImplicitSphere.

virtual float IsoEx::Implicit::scalar_distance const OpenMesh::Vec3f &  _point  )  const [pure virtual]
 

Returns the scalar distance value of _point.

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

Implemented in IsoEx::CSG::Union, IsoEx::CSG::Intersection, IsoEx::CSG::Difference, and IsoEx::ImplicitSphere.


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