Abstract base class for primitive skeletons. More...
#include <primitive.h>
Inherits jbt_object.
Inherited by jbt_circle, jbt_disk, jbt_line, jbt_plane, jbt_point, jbt_polyline and jbt_square.
Sets the field function for this primitive.
Gets the field function this primitive.
Sets the distance measure for this primitive.
Gets the distance measure for this primitive.
Sets the radius of the scalar field.
Gets the radius of the scalar field. The distance in any direction from the skeleton to the zero level surface.
Sets the coefficient of the field function. The default is 1.
Returns the coefficient of the field function.
Reimplemented from jbt_blobtree.
[protected]Builds a new primitive. R sets the width of the extant of the scalar field.
[protected, virtual]Precompute is stubbed. Override this if you need to pre-compute some values. This function gets called by beginQuery.
Reimplemented in jbt_square, jbt_polyline, jbt_disk and jbt_circle.
[protected]
Reimplemented from jbt_blobtree.
[protected]
Reimplemented from jbt_blobtree.
[protected]The primitive uv function must first move the qp to a point on the default surface of the field. This means dealing with areas of blending and with dealing with odd distance metrics. Sub-classes need to override only the uv function which takes a jVec3. Sub-classes do not need to override this function.
Reimplemented from jbt_object.
[protected, virtual]Local space uv coordinates. DO NOT use qp to compute the uv coordinate from.
Reimplemented in jbt_square, jbt_polyline, jbt_point, jbt_plane, jbt_line, jbt_disk and jbt_circle.
[protected, pure virtual]Returns the displacement vector from the current query point to the skeleton for this primitive.
Reimplemented in jbt_square, jbt_polyline, jbt_point, jbt_plane, jbt_line, jbt_disk and jbt_circle.
[protected]Intersects a sphere with the given square of the radius. Return is the number of intersections, which if >0 will be returned in a and b.
[protected]Intersects a cylinder (y aligned) with the given square of the radius. Return is the number of intersections, which if >0 will be returned in a and b.
[protected]
Reimplemented from jbt_blobtree.
[protected]
Reimplemented from jbt_blobtree.
[protected]
Reimplemented from jbt_blobtree.
[protected]
Reimplemented from jbt_blobtree.
Reimplemented in jbt_square, jbt_polyline, jbt_point, jbt_plane, jbt_line, jbt_disk and jbt_circle.
[protected]This function should be called _after_ the sub classes compute the bounding box. It is just a hack to make it bigger if the field is not bounded.
Reimplemented from jbt_blobtree.
Reimplemented in jbt_square, jbt_polyline, jbt_point, jbt_plane, jbt_line, jbt_disk and jbt_circle.
[protected] [protected]The radius of the field. The distance in any direction from the skeleton to the zero level surface.
[protected]The basis for the displacement vector. This basis should be set for during the beginQuery function. It is only necessary for some primitives. Generally if the surface generated is not homeomorphic to a sphere than you should set the basis to use. Currently only the circle and the polyline set the basis.
[protected]
[protected]
[protected]
[protected]
[protected]
[protected]
[protected]