RayMarching  0.0.1
Simple 3D engine based on a ray marching rendering
Public Types | Public Member Functions | Protected Member Functions | List of all members
RayMarching::SDFCombination Class Reference

SDFObject combining two elements. More...

#include <models3.h>

Inheritance diagram for RayMarching::SDFCombination:
RayMarching::SDFObject

Public Types

enum class  SDFOperation { UNION , INTERSECTION , DIFFERENCE }
 Available SDFObject combination. More...
 

Public Member Functions

 SDFCombination (std::unique_ptr< SDFObject > left, std::unique_ptr< SDFObject > right, SDFOperation op)
 
 ~SDFCombination () override=default
 
double getDist (const Eigen::Vector3d &p) const override
 
color_t getColor (const Eigen::Vector3d &p) const override
 
- Public Member Functions inherited from RayMarching::SDFObject
virtual ~SDFObject ()=default
 
Line getReflection (const Line &ray) const
 

Protected Member Functions

std::pair< double, double > getSoloDist (const Eigen::Vector3d &p) const
 

Detailed Description

SDFObject combining two elements.

Member Enumeration Documentation

◆ SDFOperation

Available SDFObject combination.

Enumerator
UNION 

Creates object behaving as union of two SDFObject

INTERSECTION 

Creates object behaving as intersection of two SDFObject

DIFFERENCE 

Creates difference _left / _right of two SDFObject

Constructor & Destructor Documentation

◆ SDFCombination()

RayMarching::SDFCombination::SDFCombination ( std::unique_ptr< SDFObject left,
std::unique_ptr< SDFObject right,
SDFOperation  op 
)
inline

Creates new combination

Parameters
leftunique pointer to the SDFObject
rightunique pointer to the SDFObject
optype of SDFOperation

◆ ~SDFCombination()

RayMarching::SDFCombination::~SDFCombination ( )
overridedefault

Default destructor

Member Function Documentation

◆ getColor()

color_t RayMarching::SDFCombination::getColor ( const Eigen::Vector3d &  p) const
overridevirtual

Color getter

Parameters
pRequesting point
Returns
closest color within the SDFCombination

Implements RayMarching::SDFObject.

◆ getDist()

double RayMarching::SDFCombination::getDist ( const Eigen::Vector3d &  p) const
overridevirtual

SDF function

Parameters
pRequesting point
Returns
distance to the SDFObject

Implements RayMarching::SDFObject.

◆ getSoloDist()

std::pair< double, double > RayMarching::SDFCombination::getSoloDist ( const Eigen::Vector3d &  p) const
protected

Returns pair of distances from objects

Parameters
pRequesting point
Returns
pair of distances

The documentation for this class was generated from the following files: