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

Scene containing all objects. More...

#include <scene.h>

Public Member Functions

 Scene ()=default
 
 Scene (SDFObject **const &items, size_t size)
 
 ~Scene ()
 
shapeDist signedPairFunction (Eigen::Vector3d const &p) const
 
SDFObjectsignedShapeFunction (Eigen::Vector3d const &p) const
 
double signedDistFunction (Eigen::Vector3d const &p) const
 
size_t getShapesSize () const
 
SDFObjectgetShape (size_t index) const
 
void pushShape (SDFObject *sh)
 
void destroyShape (size_t index)
 

Static Public Member Functions

static Scene getFromFile (const std::string &filename)
 

Detailed Description

Scene containing all objects.

Scene is responsible for handling SDF request, aggregating results from all Shapes

Constructor & Destructor Documentation

◆ Scene() [1/2]

RayMarching::Scene::Scene ( )
default

Default empty Scene constructor

◆ Scene() [2/2]

RayMarching::Scene::Scene ( SDFObject **const &  items,
size_t  size 
)
inline

Constructor generating scene from the SDFObject array

Parameters
itemsSDFObject pointers array
sizenumber of elements

◆ ~Scene()

RayMarching::Scene::~Scene ( )

Default destructor

Member Function Documentation

◆ destroyShape()

void RayMarching::Scene::destroyShape ( size_t  index)

Remove SDFObject at a given index

Parameters
indexrequested index

◆ getFromFile()

Scene RayMarching::Scene::getFromFile ( const std::string &  filename)
static

Creates Scene from the JSON file

Parameters
filenamepath to the file
Returns
Scene object

◆ getShape()

SDFObject* RayMarching::Scene::getShape ( size_t  index) const
inline

SDFObject getter

Parameters
indexposition of the SDFObject
Returns
Pointer to the SDFObject
Exceptions
std::out_of_range

◆ getShapesSize()

size_t RayMarching::Scene::getShapesSize ( ) const
inline

Scene container size getter

Returns
Size of the SDFObject list

◆ pushShape()

void RayMarching::Scene::pushShape ( SDFObject sh)
inline

Add new SDFObject to the Scene

Parameters
shpushed SDFObject

◆ signedDistFunction()

double RayMarching::Scene::signedDistFunction ( Eigen::Vector3d const &  p) const

SDF function returning distance

Parameters
pRequesting point
Returns
distance to the closest SDFObject

◆ signedPairFunction()

shapeDist RayMarching::Scene::signedPairFunction ( Eigen::Vector3d const &  p) const

SDF function returning pair of distance and object

Parameters
pRequesting point
Returns
std::pair containing SDFObject and distance

◆ signedShapeFunction()

SDFObject * RayMarching::Scene::signedShapeFunction ( Eigen::Vector3d const &  p) const

SDF function returning closest object

Parameters
pRequesting point
Returns
Pointer to the closest SDFObject

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