Abstract class that represents root of a scene graph and can render it. More...

#include <Camera.hpp>

Public Member Functions

 Camera (Instance *, RenderTarget::Geometry)
 
 ~Camera ()
 
void status (iv::TableDebugView *view)
 
void render_scene (Elem *view=nullptr)
 
void geometry (RenderTarget::Geometry geometry)
 
virtual Cameraelem_getRoot () override
 
float3 FromLocalSpaceToViewportSpace (float4x4 model_transform, float3)
 
float3 FromViewportSpaceToLocalSpace (float4x4 model_transform, float3)
 
float2 FromViewportPlaneToLocalPlane (float4x4 model_transform, float2)
 
- Public Member Functions inherited from iv::Slot
 Slot (Instance *)
 
void status (iv::TableDebugView *view)
 
Instanceinstance () const
 
- Public Member Functions inherited from iv::VectorChildrenElem< SlotChild >
 VectorChildrenElem (Instance *inst)
 
 ~VectorChildrenElem ()
 
T * createChild (CArgs const &... cargs)
 
T * createChild_Instance (char const *name, CArgs const &... cargs)
 
void pushChild (SlotChild *)
 
void removeChild (SlotChild *)
 
- Public Member Functions inherited from iv::Elem
 Elem (Instance *inst)
 
 ~Elem ()
 
void status (iv::TableDebugView *view)
 
Instanceinstance () const
 
void elem_setParent (Elem *)
 
Elemelem_getParent ()
 
void first_pass (ElementRenderer *)
 
void second_pass (ElementRenderer *)
 
unsigned first_pass_frame_id ()
 
unsigned second_pass_frame_id ()
 
Elemenabled (bool val)
 
void quiet (bool)
 
bool quiet () const
 
float3 FromLocalSpaceToScreenSpace (float3 local_space)
 
float3 FromScreenSpaceToLocalSpace (float3 screen_space)
 
float2 FromScreenPlaneToLocalPlane (float2 screen_space)
 
void Add_InputNode (InputNode *node)
 
void Remove_InputNode (InputNode *node)
 
- Public Member Functions inherited from iv::InputNode
 InputNode (Instance *inst)
 
 ~InputNode ()
 
Instanceinstance () const
 
void status (iv::TableDebugView *view)
 
void inputEnabled (bool)
 
bool inputEnabled ()
 
void quiet (bool)
 
bool quiet () const
 
void input_deactivate ()
 
void input_treeRefresh ()
 
void input_setParent (InputNode *)
 
InputNodeinput_getParent ()
 
virtual InputRootinput_getRoot ()
 
bool input_trigger_visit (InputRoot *root, Input::DeviceKey key)
 
bool input_visit (InputRoot *root, Input::DeviceKey key, bool &press, bool &real, bool &offspace)
 
- Public Member Functions inherited from iv::SlotChild
 SlotChild (Elem *elem)
 
Instanceinstance () const
 
void status (iv::TableDebugView *view)
 
virtual bool picking_test (int2 input_pos) override
 
virtual bool picking_test_pixel_perfect (float2 local_pos)
 
- Public Member Functions inherited from iv::Pickable
 Pickable (Elem *elem)
 
Elemelem ()
 
const Elemelem () const
 

Public Attributes

ClientMarker cm
 
- Public Attributes inherited from iv::Slot
ClientMarker cm
 
- Public Attributes inherited from iv::VectorChildrenElem< SlotChild >
ClientMarker cm
 
- Public Attributes inherited from iv::Elem
ClientMarker cm
 
DirtyAttr< bool > attr_enabled
 
DirtyAttr< float4x4modelTransform
 
DirtyAttr< ShaderScissorscissor
 
- Public Attributes inherited from iv::InputNode
ClientMarker cm
 
- Public Attributes inherited from iv::SlotChild
ClientMarker cm
 
DirtyAttr< float3expectedSize
 
DirtyAttr< float3preferredSize
 
DirtyAttr< float3size
 
- Public Attributes inherited from iv::Pickable
ClientMarker cm
 

Additional Inherited Members

- Protected Member Functions inherited from iv::Slot
virtual void first_pass_impl (ElementRenderer *) override
 
virtual void second_pass_impl (ElementRenderer *) override
 
- Protected Member Functions inherited from iv::VectorChildrenElem< SlotChild >
virtual void elem_eachChild (std::function< void(Elem *) > const &) override
 
virtual void elem_childDisconnect (Elem *) override
 
virtual void input_eachChild (std::function< void(InputNode *) > const &f) override
 
virtual void input_childDisconnect (InputNode *child) override
 
- Protected Member Functions inherited from iv::InputNode
virtual bool input_trigger_process (InputRoot *root, Input::DeviceKey key)
 
virtual void input_process (InputRoot *root, Input::DeviceKey key, bool &press, bool &real, bool &offspace)
 
- Protected Attributes inherited from iv::VectorChildrenElem< SlotChild >
std::vector< SlotChild * > children
 
bool children_dirty
 

Detailed Description

Abstract class that represents root of a scene graph and can render it.

Add SlotChild instances and then render them using Camera::render_scene. Camera can use model matrix of one Elem in scene graph as a view matrix - rendering scene from the point of view of that Elem. To be fully functional, a child needs to implement all virtual methods of ElementRenderer - it decides on order in which Renderables are rendered.

Definition at line 17 of file Camera.hpp.

Constructor & Destructor Documentation

◆ Camera()

iv::Camera::Camera ( Instance inst,
RenderTarget::Geometry  geometry 
)

Definition at line 9 of file Camera.cpp.

◆ ~Camera()

iv::Camera::~Camera ( )

Definition at line 24 of file Camera.cpp.

Member Function Documentation

◆ status()

void iv::Camera::status ( iv::TableDebugView view)

Definition at line 31 of file Camera.cpp.

◆ render_scene()

void iv::Camera::render_scene ( Elem view = nullptr)

view Model matrix of this node will be used as view matrix for the whole render. Can be null to use empty view matrix - it is rendered from point of view of this camera.

Definition at line 56 of file Camera.cpp.

◆ geometry()

void iv::Camera::geometry ( RenderTarget::Geometry  geometry)

Definition at line 41 of file Camera.cpp.

◆ elem_getRoot()

Camera * iv::Camera::elem_getRoot ( )
overridevirtual

Reimplemented from iv::Elem.

Definition at line 72 of file Camera.cpp.

◆ FromLocalSpaceToViewportSpace()

float3 iv::Camera::FromLocalSpaceToViewportSpace ( float4x4  model_transform,
float3  in 
)

Definition at line 114 of file Camera.cpp.

◆ FromViewportSpaceToLocalSpace()

float3 iv::Camera::FromViewportSpaceToLocalSpace ( float4x4  model_transform,
float3  in 
)

Definition at line 122 of file Camera.cpp.

◆ FromViewportPlaneToLocalPlane()

float2 iv::Camera::FromViewportPlaneToLocalPlane ( float4x4  model_transform,
float2  in 
)

Definition at line 131 of file Camera.cpp.

Member Data Documentation

◆ cm

ClientMarker iv::Camera::cm

Definition at line 20 of file Camera.hpp.


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