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

Class representing camera object. More...

#include <Camera.h>

Public Member Functions

 Camera (const Eigen::Vector3d &localization, const Eigen::Vector3d &direction, const Eigen::Vector3d &up)
 
 Camera (const Eigen::Vector3d &localization, const Eigen::Vector3d &direction, const Eigen::Vector3d &up, Settings_t set)
 
 ~Camera ()
 
std::shared_ptr< ScenegetScene ()
 
pixel * takePhoto ()
 
void setCamera (const Eigen::Vector3d &localization, const Eigen::Vector3d &direction, const Eigen::Vector3d &up)
 

Protected Types

enum class  CameraCommands { GENERATE , DRAW }
 

Protected Member Functions

void applyCommand (Camera::CameraCommands cmd)
 

Static Protected Attributes

static const color_t BACKGROUND = WHITE
 

Detailed Description

Class representing camera object.

Class representing camera object. Controls whole rendering process of the RayMarching lib.

Member Enumeration Documentation

◆ CameraCommands

Enum describing Commands available for the Camera threads

Enumerator
GENERATE 

Generate new Camera rays

DRAW 

Draw new image buffer

Constructor & Destructor Documentation

◆ Camera() [1/2]

RayMarching::Camera::Camera ( const Eigen::Vector3d &  localization,
const Eigen::Vector3d &  direction,
const Eigen::Vector3d &  up 
)
inline

Creates new Camera with default settings

Parameters
localizationVector3d representing Camera position in the space
directionVector3d representing Point at which Camera looks
upVector3d representing normal vector for Camera horizontal plane

◆ Camera() [2/2]

RayMarching::Camera::Camera ( const Eigen::Vector3d &  localization,
const Eigen::Vector3d &  direction,
const Eigen::Vector3d &  up,
Settings_t  set 
)

Creates new Camera object

Parameters
localizationVector3d representing Camera position in the space
directionVector3d representing Point at which Camera looks
upVector3d representing normal vector for Camera horizontal plane
setSettings_t structure defining parameters

◆ ~Camera()

RayMarching::Camera::~Camera ( )

Camera destructor

Member Function Documentation

◆ applyCommand()

void RayMarching::Camera::applyCommand ( Camera::CameraCommands  cmd)
protected

Sends command to the render threads and awaits for the synchronization

Parameters
cmdCameraCommands command

◆ getScene()

std::shared_ptr<Scene> RayMarching::Camera::getScene ( )
inline

Scene getter

Returns
shared pointer owning Scene object

◆ setCamera()

void RayMarching::Camera::setCamera ( const Eigen::Vector3d &  localization,
const Eigen::Vector3d &  direction,
const Eigen::Vector3d &  up 
)

Moves Camera to a new position

Parameters
localizationVector3d representing Camera position in the space
directionVector3d representing Point at which Camera looks
upVector3d representing normal vector for Camera horizontal plane

◆ takePhoto()

pixel * RayMarching::Camera::takePhoto ( )

Render frame

Returns
unsigned char[3 * WIDTH * HEIGHT] OpenGL RGB 8bit buffer

Member Data Documentation

◆ BACKGROUND

const color_t RayMarching::Camera::BACKGROUND = WHITE
staticprotected

Default background color


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