| Blob 1.0
    | 
Cubic curve primitive. More...
#include <blobtree.h>
 
  
| Public Member Functions | |
| TreeCubicCurve (const CubicCurve &, BlendCompact *) | |
| Creates either a cubic polynomial curve skeletal element. | |
| virtual | ~TreeCubicCurve () | 
| Destroys a curve. | |
| virtual TreeNode * | Copy () const | 
| Creates a deep copy of curve element. | |
| int | Memory () const | 
| Compute the size of a node. | |
|  Public Member Functions inherited from TreeNormal | |
| TreeNormal (BlendCompact *=nullptr) | |
| Creates a skeletal element given a blending function. | |
| virtual | ~TreeNormal () | 
| Destroys a skeletal element. | |
| virtual double | R (const Vector &) const | 
| Computes the squared Euclidean distance to the skeleton. | |
| virtual double | Intensity (const Vector &) const | 
| Compute the intensity at a given point. | |
| virtual Vector | Gradient (const Vector &) const | 
| Compute the gradient at a given point. | |
| virtual void | IntensityGradient (const Vector &, double &, Vector &) const | 
| Compute the field value and the gradient of the field function at a given point in space. | |
| virtual double | K (const Segment &) const | 
| Compute the Lipschitz constant on a segment. | |
| virtual double | K (const RayStep &) const | 
| Compute the Lipschitz constant on a segment. | |
| virtual double | K (const Sphere &) const | 
| Compute the Lipschitz constant inside a sphere. | |
|  Public Member Functions inherited from TreeElement | |
| TreeElement (BlendCompact *=nullptr) | |
| Creates a new element given a blending function. | |
| virtual | ~TreeElement () | 
| Destroys an element. | |
| double | K () const | 
| Returns the Lipschitz constant of the element. | |
| double | K (const Box &) const | 
| Returns a local Lipschitz constant within a box domain. | |
| double | K (const Ray &) const | 
| Returns a local Lipschitz constant along a ray. | |
| TreeNode * | Cut (const Box &) const | 
| Cuts the node to simplify its structure inside a box. | |
|  Public Member Functions inherited from TreeNode | |
| TreeNode () | |
| Create a virtual node of the Blob-Tree structure. | |
| virtual | ~TreeNode () | 
| Destroys a node. | |
| virtual double | Omega (const Vector &) const | 
| Return the squared distance to the compact support of the node. | |
| virtual TreeNode * | Blend (TreeNode *) | 
| Insert a blending node that blends the old and the new sub-tree together. | |
| virtual TreeNode * | Union (TreeNode *) | 
| Insert a union node that unions the old and the new sub-tree together. | |
| virtual TreeNode * | Difference (TreeNode *) | 
| Insert a difference node. | |
| virtual TreeNode * | Translate (const Vector &) | 
| Insert a translation node. | |
| virtual TreeNode * | Rotate (const Matrix &) | 
| Insert a rotation node. | |
| virtual TreeNode * | Scale (const Vector &) | 
| Insert a scaling node. | |
| Box | GetBox () const | 
| Return the bounding box of the node. | |
| virtual void | SetThreshold (const double &) | 
| Set the threshold value. | |
| virtual Color | GetMaterial (const Vector &, const Vector &=Vector::Null) const | 
| Gets the color of a node at a point. | |
| virtual int | Nodes () const | 
| Compute the number of nodes of the sub-tree. | |
| virtual int | Depth () const | 
| Compute the dpeth of the sub-tree. | |
| virtual QString | Show (int=0) const | 
| Show the tree hierarchy. | |
| virtual Vector | Dichotomy (Vector, Vector, double, double, double, const double &=1.0e-4) | 
| Compute the intersection between the implicit surface and a segment. | |
| Protected Member Functions | |
| Vector | Normal (const Vector &) const | 
| Compute the distance vector between a point in space and the curve. | |
| Protected Attributes | |
| CubicCurve | c | 
| Cubic curve. | |
| Quartic | xyz | 
| Quartic constant coefficients used to speed-up queries. | |
| Vector | b | 
| End vertices of the curve. | |
|  Protected Attributes inherited from TreeElement | |
| BlendCompact * | blend = nullptr | 
| Falloff function. | |
|  Protected Attributes inherited from TreeNode | |
| Box | box = Box::Null | 
| Bounding box of the node. | |
| double | T = 0.5 | 
| Threshold value. | |
| Additional Inherited Members | |
|  Static Protected Attributes inherited from TreeNode | |
| static const double | Epsilon = 1e-6 | 
| Epsilon value for gradient computation. | |
Cubic curve primitive.
The evaluation of the field function at a given point in space is computationally expensive at the computation of the distance to the skeleton requires finding the roots of a quintic.
Example of how to code a Bezier primitive:
,
| TreeCubicCurve::TreeCubicCurve | ( | const CubicCurve & | c, | 
| BlendCompact * | blend ) | 
Creates either a cubic polynomial curve skeletal element.
| c | Cubic curve. | 
| blend | Falloff function. | 
Compute the distance vector between a point in space and the curve.
This function computes the projection of a point p onto the curve by minimizing the distance function along the curve, expressed as a degree five polynomial.
| p | Point. | 
Implements TreeNormal.