Blob 1.0
|
Hollow sphere primitive. More...
#include <blobtree.h>
Public Member Functions | |
TreeBubble (const Vector &, const double &r, BlendCompact *) | |
Create a hollow sphere skeletal element. More... | |
virtual | ~TreeBubble () |
Destroys a bubble element. | |
double | Intensity (const Vector &) const |
Compute the intensity at a given point. More... | |
virtual TreeNode * | Copy () const |
Create a deep copy of sphere element. | |
int | Memory () const |
Compute the size of a node. | |
TreeNode * | Translate (const Vector &) |
Translate a buble node. More... | |
TreeNode * | Rotate (const Matrix &) |
Rotates a hollow sphere element. More... | |
Public Member Functions inherited from TreeSphere | |
TreeSphere (const Vector &, const double &, BlendCompact *) | |
Create a sphere skeleton element. More... | |
virtual | ~TreeSphere () |
Destroys a sphere element. | |
double | K (const Ray &) const |
Returns a local Lipschitz constant along a ray. More... | |
double | K (const RayStep &) const |
Compute the Lipschitz constant on a segment. More... | |
double | K (const Segment &) const |
Compute the Lipschitz constant on a segment. More... | |
TreeNode * | Scale (const double &) |
Scale a sphere primitive. More... | |
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. More... | |
virtual Vector | Gradient (const Vector &) const |
Compute the gradient at a given point. More... | |
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. More... | |
virtual double | K (const Sphere &) const |
Compute the Lipschitz constant inside a sphere. More... | |
Public Member Functions inherited from TreeElement | |
TreeElement (BlendCompact *=nullptr) | |
Creates a new element given a blending function. | |
virtual | ~TreeElement () |
Destroys an element. More... | |
double | K () const |
Returns the Lipschitz constant of the element. More... | |
double | K (const Box &) const |
Returns a local Lipschitz constant within a box domain. More... | |
TreeNode * | Cut (const Box &) const |
Cuts the node to simplify its structure inside a box. More... | |
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. More... | |
virtual TreeNode * | Union (TreeNode *) |
Insert a union node that unions the old and the new sub-tree together. More... | |
virtual TreeNode * | Difference (TreeNode *) |
Insert a difference node. More... | |
virtual TreeNode * | Scale (const Vector &) |
Insert a scaling node. More... | |
Box | GetBox () const |
Return the bounding box of the node. | |
virtual void | SetThreshold (const double &) |
Set the threshold value. More... | |
virtual Color | GetMaterial (const Vector &, const Vector &=Vector::Null) const |
Gets the color of a node at a point. More... | |
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 Vector | Dichotomy (Vector, Vector, double, double, double, const double &=1.0e-4) |
Compute the intersection between the implicit surface and a segment. More... | |
Protected Member Functions | |
Vector | Normal (const Vector &) const |
Computes the normal vector between a point and the bubble. More... | |
Additional Inherited Members | |
Protected Attributes inherited from TreeNode | |
Box | box = Box::Null |
Bounding box of the node. | |
double | T = 0.5 |
Threshold value. | |
Static Protected Attributes inherited from TreeNode | |
static const double | Epsilon = 1e-6 |
Epsilon value for gradient computation. | |
Hollow sphere primitive.
Bubbles are hollow spheres, thus surfacic skeletal primitives. Contrary to vertex elements whose field function varies everywhere in space and contrary to sphere elements whose field function is maximum inside the sphere, the field function inside the bubble is null.
Example of how to code a sphere primitive:
,
|
explicit |
Create a hollow sphere skeletal element.
c | Center of the sphere. |
r | Radius. |
blend | Falloff function. |
|
virtual |
Computes the normal vector between a point and the bubble.
p | Point. |
Reimplemented from TreeSphere.
Rotates a hollow sphere element.
Instead of inserting a rotation node in the tree, simply updates the center of the sphere as well as its internal parameters.
r | Rotation matrix. |
Reimplemented from TreeSphere.