Signed Distance Fields 1.0
SDFIntersection2 Class Reference

Exact intersection operator. More...

#include <sdf.h>

Inheritance diagram for SDFIntersection2:
SDFBinary2 SDFNode2

Public Member Functions

 SDFIntersection2 (SDFNode2 *, SDFNode2 *)
 Create an intersection node.
 
 SDFIntersection2 (SDFNode2 *, SDFNode2 *, SDFNode2 *)
 Create an intersection node.
 
virtual ~SDFIntersection2 ()
 Destructor.
 
double Signed (const Vector2 &) const
 Compute the signed distance.
 
QString GetShader (PrimitiveManager *, std::list< QString > *, bool *) const
 Compute the GLSL code to render the node.
 
QString GetCostShader (PrimitiveManager *, std::list< QString > *, bool *) const
 Compute the GLSL code to render the node.
 
virtual int Memory () const
 Return the size of a sub-tree.
 
virtual SDFNode2Copy () const
 Deep copy.
 
- Public Member Functions inherited from SDFBinary2
 SDFBinary2 (SDFNode2 *, SDFNode2 *)
 Create a binary node2.
 
virtual ~SDFBinary2 ()
 Recursively destroy the sub-trees.
 
int Nodes () const
 Compute the number of nodes in the sub-tree.
 
virtual void ComputeCostSigned (const Vector2 &)
 Compute the number of reccursive calls to Signed().
 
- 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 GetGradientShader (PrimitiveManager *, std::list< QString > *, bool *=nullptr) const
 Compute the GLSL code to compute the gradient the sdf.
 
virtual double K () const
 Return the Lipschitz constant of the node.
 
Box2 GetBox () const
 Return the bounding box of the node.
 

Additional Inherited Members

- Protected Attributes inherited from SDFBinary2
SDFNode2e [2] = { nullptr,nullptr }
 Sub-trees.
 
- 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.
 
- Static Protected Attributes inherited from SDFNode2
static constexpr double Epsilon = 0.01
 Small constant used for bounding volumes.
 

Detailed Description

Exact intersection operator.

Author
Lucie Fournier

Constructor & Destructor Documentation

◆ SDFIntersection2() [1/2]

SDFIntersection2::SDFIntersection2 ( SDFNode2 * a,
SDFNode2 * b )
explicit

Create an intersection node.

Parameters
a,bSub-trees.

◆ SDFIntersection2() [2/2]

SDFIntersection2::SDFIntersection2 ( SDFNode2 * a,
SDFNode2 * b,
SDFNode2 * c )
explicit

Create an intersection node.

Parameters
a,b,cSub-trees.

Member Function Documentation

◆ GetCostShader()

QString SDFIntersection2::GetCostShader ( PrimitiveManager * primitives,
std::list< QString > * dependency,
bool * valid_glsl ) const
virtual

Compute the GLSL code to render the node.

Author
Hubert-Brierre Pierre

Reimplemented from SDFBinary2.

◆ GetShader()

QString SDFIntersection2::GetShader ( PrimitiveManager * primitives,
std::list< QString > * dependency,
bool * valid_glsl ) const
virtual

Compute the GLSL code to render the node.

Author
Hubert-Brierre Pierre

Reimplemented from SDFNode2.

◆ Memory()

int SDFIntersection2::Memory ( ) const
virtual

Return the size of a sub-tree.

Reimplemented from SDFNode2.

◆ Signed()

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

Compute the signed distance.

Parameters
pPoint.

Reimplemented from SDFNode2.