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. | |
virtual | ~TreeBubble () |
Destroys a bubble element. | |
double | Intensity (const Vector &) const |
Compute the intensity at a given point. | |
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. | |
TreeNode * | Rotate (const Matrix &) |
Rotates a hollow sphere element. | |
![]() | |
TreeSphere (const Vector &, const double &, BlendCompact *) | |
Create a sphere skeleton element. | |
TreeSphere (const double &, BlendCompact *) | |
Create a sphere skeleton element, centered at origin. | |
virtual | ~TreeSphere () |
Destroys a sphere element. | |
double | Intensity (const Vector &) const |
Compute the intensity at a given point. | |
double | Omega (const Vector &) const |
int | Memory () const |
Compute the size of a node. | |
double | K (const Ray &) const |
Returns a local Lipschitz constant along a ray. | |
double | K (const RayStep &) const |
Compute the Lipschitz constant on a segment. | |
double | K (const Segment &) const |
Compute the Lipschitz constant on a segment. | |
TreeNode * | Translate (const Vector &) |
Translates a sphere primitive. | |
TreeNode * | Rotate (const Matrix &) |
Rotates a sphere element. | |
TreeNode * | Scale (const double &) |
Scale a sphere primitive. | |
![]() | |
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 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 Sphere &) const |
Compute the Lipschitz constant inside a sphere. | |
![]() | |
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. | |
![]() | |
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. | |
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 |
Computes the normal vector between a point and the bubble. | |
![]() | |
Vector | Normal (const Vector &) const |
Computes the normal vector between a point and the sphere. | |
Additional Inherited Members | |
![]() | |
BlendCompact * | blend = nullptr |
Falloff function. | |
![]() | |
Box | box = Box::Null |
Bounding box of the node. | |
double | T = 0.5 |
Threshold value. | |
![]() | |
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 |
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 TreeNode.
Computes the normal vector between a point and the bubble.
p | Point. |
Implements TreeNormal.