Signed Distance Fields 1.0
SDFUnary2 Class Reference

Unary planar nodes. More...

#include <sdf.h>

Inheritance diagram for SDFUnary2:
SDFNode2 SDFFrame2 SDFNoise2 SDFPlanarSymmetry2 SDFRevolutionSymmetry2 SDFRotate2 SDFRound2 SDFScale2 SDFThickSurface2 SDFTranslate2 SDFTurbulence2 SDFUniformScale2

Public Member Functions

 SDFUnary2 (SDFNode2 *)
 Create an unary planar node.
virtual ~SDFUnary2 ()
 Destroy the sub-tree.
virtual double Signed (const Vector2 &) const
 Compute the signed distance.
virtual void SetShaderId (PrimitiveManager &primitives)
 Set up an id for generating GLSL code.
virtual void ResetShaderId ()
 Reset the id for generating GLSL code.
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.
void ResetShaderId ()
 Reset the id for generating GLSL code.
virtual QString GetShader (PrimitiveManager &, std::list< QString > &, bool &) const
 Compute the GLSL code to render the node.
virtual QString GetGradientShader (PrimitiveManager &, std::list< QString > &, bool &) const
 Compute the GLSL code to compute the gradient the sdf.
virtual QJsonValue ToJson () const
 Conversion to JavaScript Object Notation.
virtual int Memory () const
 Return the size of a sub-tree.
Box2 GetBox () const
 Return the bounding box of the node.

Protected Attributes

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 Public Member Functions inherited from SDFNode2
static SDFNode2FromJson (const QJsonValue &json)
 Conversion from JavaScript Object Notation.
Static Protected Attributes inherited from SDFNode2
static constexpr double Epsilon = 0.01
 Small constant used for bounding volumes.

Detailed Description

Unary planar nodes.

Author
Lucie Fournier

Constructor & Destructor Documentation

◆ SDFUnary2()

SDFUnary2::SDFUnary2 ( SDFNode2 * n)
explicit

Create an unary planar node.

Default Lipschitz constant and box are computed from the sub-tree.

Parameters
nThe sub-tree.

Member Function Documentation

◆ ComputeCostSigned()

void SDFUnary2::ComputeCostSigned ( const Vector2 & p)
virtual

Compute the number of reccursive calls to Signed().

Author
Hubert-Brierre Pierre

Reimplemented from SDFNode2.

Reimplemented in SDFFrame2, SDFRotate2, SDFScale2, SDFTranslate2, and SDFUniformScale2.

◆ GetCostShader()

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

Compute the GLSL code to compute the cost of a call to sdf.

Author
Hubert-Brierre Pierre

Reimplemented from SDFNode2.

Reimplemented in SDFFrame2, SDFRotate2, SDFScale2, SDFTranslate2, and SDFUniformScale2.

◆ K()

double SDFUnary2::K ( ) const
virtual

Return the Lipschitz constant of the node.

By default, nodes are considered as signed Euclidean distance functions, and the Lipschitz consistant is \(\lambda=1\).

Reimplemented from SDFNode2.

◆ Nodes()

int SDFUnary2::Nodes ( ) const
virtual

Compute the number of nodes in the sub-tree.

Reimplemented from SDFNode2.

◆ ResetShaderId()

void SDFUnary2::ResetShaderId ( )
virtual

Reset the id for generating GLSL code.

Author
Hubert-Brierre Pierre

◆ SetShaderId()

void SDFUnary2::SetShaderId ( PrimitiveManager & primitives)
virtual

Set up an id for generating GLSL code.

Author
Hubert-Brierre Pierre

Reimplemented from SDFNode2.

◆ Signed()

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

Compute the signed distance.

Parameters
pPoint.

Reimplemented from SDFNode2.

Reimplemented in SDFFrame2, SDFNoise2, SDFPlanarSymmetry2, SDFRevolutionSymmetry2, SDFRotate2, SDFRound2, SDFScale2, SDFThickSurface2, SDFTranslate2, SDFTurbulence2, and SDFUniformScale2.