|
IsoEx
|
#include <IsoEx/Implicits/ImplicitSphere.hh>
Public Types | |
| typedef Vec3::value_type | real |
Public Types inherited from IsoEx::Implicit< Vec3 > | |
| typedef Vec3::value_type | real |
Public Member Functions | |
Constructor & destructor | |
| ImplicitSphere (const Vec3 &_center, real _radius) | |
| Constructor: given sphere center and radius. | |
| ~ImplicitSphere () | |
| Empty destructor. | |
Abstract interface of implicit objects, see also IsoEx::Implicit. | |
| bool | is_inside (const Vec3 &_point) const |
| real | scalar_distance (const Vec3 &_point) const |
| bool | directed_distance (const Vec3 &_p0, const Vec3 &_p1, Vec3 &_point, Vec3 &_normal, real &_distance) const |
Public Member Functions inherited from IsoEx::Implicit< Vec3 > | |
| Implicit () | |
| constructor | |
| virtual | ~Implicit () |
| destructor | |
This class implements a very simple implicit object: a sphere given its center and its radius.
|
inlinevirtual |
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< Vec3 >.
|
inlinevirtual |
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< Vec3 >.
|
inlinevirtual |
Returns the scalar distance value of _point. Points inside the object should have negative distances, points outside positive distance.
Implements IsoEx::Implicit< Vec3 >.
1.8.8