|
Blob 1.0
|
A point skeleton element. More...
#include <blobtree.h>
Public Member Functions | |
| TreeVertex (const Vector &, BlendCompact *) | |
| Create a point skeletal element given its center and its blending function. | |
| virtual | ~TreeVertex () |
| Destroy a vertex element. | |
| Vector | Normal (const Vector &) const |
| Compute the normal vector between a point and the skeleton. | |
| double | Intensity (const Vector &) const |
| Compute the intensity. | |
| Vector | Gradient (const Vector &) const |
| Compute the gradient of the field function at a given point in space. | |
| double | Omega (const Vector &) const |
| Return the squared distance to the compact support of the node. | |
| void | IntensityGradient (const Vector &, double &, Vector &) const |
| Compute the intensity and gradient. | |
| double | K (const Segment &) const |
| Compute the Lipschitz constant on a segment. | |
| double | K (const RayStep &) const |
| Compute the Lipschitz constant on a segment. | |
| double | K (const Ray &) const |
| Returns a local Lipschitz constant along a ray. | |
| virtual TreeNode * | Copy () const |
| Creates a deep copy of a vertex node. | |
| int | Memory () const |
| Compute the size of a node. | |
| virtual TreeNode * | Translate (const Vector &) |
| Translates a vertex node in the BlobTree. | |
| virtual TreeNode * | Rotate (const Matrix &) |
| Rotates a vertex node in the BlobTree. | |
| virtual TreeNode * | Scale (const Vector &) |
| Scale a vertex 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 | 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. | |
| 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 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. | |
| 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 Attributes | |
| Vector | c |
| Center. | |
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. | |
A point skeleton element.
Example of how to code a vertex primitive:
,
|
explicit |
Create a point skeletal element given its center and its blending function.
| c | Center. |
| blend | Falloff function. |
Compute the normal vector between a point and the skeleton.
In this trivial case simply return the distance vector to the center.
Implements TreeNormal.
|
virtual |
Compute the gradient of the field function at a given point in space.
| p | Point. |
Reimplemented from TreeNormal.
|
virtual |
Return the squared distance to the compact support of the node.
| p | Point. |
Reimplemented from TreeNode.
Compute the intensity and gradient.
This function factorizes computations and is less expensive than calling TreeVertex::Intensity and TreeVertex::Gradient.
| p | Point. |
| s | Intensity. |
| g | Gradient. |
Reimplemented from TreeNormal.
|
virtual |
|
virtual |
Compute the Lipschitz constant on a segment.
| raystep | Segment. |
Reimplemented from TreeNormal.
|
virtual |
Returns a local Lipschitz constant along a ray.
Returns the Lipschitz constant of the element if argument ray intersects the element's bounding box.
| ray | The ray. |
Reimplemented from TreeElement.
Translates a vertex node in the BlobTree.
Instead of inserting a translation node in the tree, simply updates the center.
| t | Translation vector. |
Reimplemented from TreeNode.
Rotates a vertex node in the BlobTree.
Instead of inserting a rotation node in the tree, simply updates the center.
| r | Rotation matrix. |
Reimplemented from TreeNode.