Signed Distance Fields 1.0
SDFRevolutionSymmetry2 Class Reference

Revolution symmetry operator. More...

#include <sdf.h>

Inheritance diagram for SDFRevolutionSymmetry2:
SDFUnary2 SDFNode2

Public Member Functions

 SDFRevolutionSymmetry2 (SDFNode2 *, int)
 Create a planar symmetry node.
 
virtual ~SDFRevolutionSymmetry2 ()
 Destructor.
 
double Signed (const Vector2 &) const
 Compute the signed distance function.
 
virtual int Memory () const
 Compute the memory used by this node.
 
virtual SDFNode2Copy () const
 Deep copy.
 
- Public Member Functions inherited from SDFUnary2
 SDFUnary2 (SDFNode2 *)
 Create an unary planar node.
 
virtual ~SDFUnary2 ()
 Destroy the sub-tree.
 
virtual QString GetCostShader (PrimitiveManager *, std::list< QString > *, bool *) const
 Compute the GLSL code to compute the cost of a call to sdf.
 
virtual void ComputeCostSigned (const Vector2 &)
 Compute the number of reccursive calls to Signed().
 
virtual double K () const
 Return the Lipschitz constant of the node.
 
virtual int Nodes () const
 Compute the number of nodes in the sub-tree.
 
- Public Member Functions inherited from SDFNode2
 SDFNode2 ()
 Create a generic node.
 
virtual ~SDFNode2 ()
 Destructor.
 
virtual Vector2 Gradient (const Vector2 &) const
 Compute the gradient of the field.
 
virtual bool Inside (const Vector2 &) const
 Check if a point is inside or outside.
 
virtual QString GetShader (PrimitiveManager *, std::list< QString > *, bool *=nullptr) const
 Compute the GLSL code to render the node.
 
virtual QString GetGradientShader (PrimitiveManager *, std::list< QString > *, bool *=nullptr) const
 Compute the GLSL code to compute the gradient the sdf.
 
Box2 GetBox () const
 Return the bounding box of the node.
 

Protected Attributes

int n
 Rotation matrix.
 
double alpha
 Angle.
 
- Protected Attributes inherited from SDFUnary2
SDFNode2e = nullptr
 Sub-tree.
 
- Protected Attributes inherited from SDFNode2
Box2 box = Box2::Infinity
 Box bounding the surface.
 
double k = 1.0
 Lipschitz constant.
 
int cost = 1
 Cost of the node.
 

Additional Inherited Members

- Static Protected Attributes inherited from SDFNode2
static constexpr double Epsilon = 0.01
 Small constant used for bounding volumes.
 

Detailed Description

Revolution symmetry operator.

Constructor & Destructor Documentation

◆ SDFRevolutionSymmetry2()

SDFRevolutionSymmetry2::SDFRevolutionSymmetry2 ( SDFNode2 * node,
int n )
explicit

Create a planar symmetry node.

Parameters
nodeSub-tree.
nNumber of symmetries.

Member Function Documentation

◆ Signed()

double SDFRevolutionSymmetry2::Signed ( const Vector2 & p) const
virtual

Compute the signed distance function.

This operator preserves the Euclidean distance.

See also
Plane::Signed(const Vector&)
Parameters
pPoint.

Reimplemented from SDFUnary2.

Member Data Documentation

◆ n

int SDFRevolutionSymmetry2::n
protected

Rotation matrix.

Number of clones by symmetry.