iv::VectorChildrenElem< ChildT > Class Template Reference

#include <VectorChildrenElem.hpp>

Public Member Functions

 VectorChildrenElem (Instance *inst)
 
 ~VectorChildrenElem ()
 
template<class T , class ... CArgs>
T * createChild (CArgs const &... cargs)
 
template<class T , class ... CArgs>
T * createChild_Instance (char const *name, CArgs const &... cargs)
 
void pushChild (ChildT *)
 
void removeChild (ChildT *)
 
- Public Member Functions inherited from iv::Elem
 Elem (Instance *inst)
 
 ~Elem ()
 
void status (iv::TableDebugView *view)
 
Instanceinstance () const
 
void elem_setParent (Elem *)
 
Elemelem_getParent ()
 
virtual Cameraelem_getRoot ()
 
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 Attributes

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
 

Protected Member Functions

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::Elem
virtual void first_pass_impl (ElementRenderer *)=0
 
virtual void second_pass_impl (ElementRenderer *)
 
- 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

std::vector< ChildT * > children
 
bool children_dirty
 

Detailed Description

template<class ChildT>
class iv::VectorChildrenElem< ChildT >

Definition at line 12 of file VectorChildrenElem.hpp.

Constructor & Destructor Documentation

◆ VectorChildrenElem()

template<class ChildT >
iv::VectorChildrenElem< ChildT >::VectorChildrenElem ( Instance inst)

Definition at line 5 of file VectorChildrenElem.inl.

◆ ~VectorChildrenElem()

template<class ChildT >
iv::VectorChildrenElem< ChildT >::~VectorChildrenElem

Definition at line 16 of file VectorChildrenElem.inl.

Member Function Documentation

◆ createChild()

template<class ChildT >
template<class T , class ... CArgs>
T * iv::VectorChildrenElem< ChildT >::createChild ( CArgs const &...  cargs)

Child must specialize ChildT class.

Definition at line 32 of file VectorChildrenElem.inl.

◆ createChild_Instance()

template<class ChildT >
template<class T , class ... CArgs>
T * iv::VectorChildrenElem< ChildT >::createChild_Instance ( char const *  name,
CArgs const &...  cargs 
)

Definition at line 42 of file VectorChildrenElem.inl.

◆ pushChild()

template<class ChildT >
void iv::VectorChildrenElem< ChildT >::pushChild ( ChildT *  child)

Definition at line 51 of file VectorChildrenElem.inl.

◆ removeChild()

template<class ChildT >
void iv::VectorChildrenElem< ChildT >::removeChild ( ChildT *  child)

Definition at line 84 of file VectorChildrenElem.inl.

◆ elem_eachChild()

template<class ChildT >
void iv::VectorChildrenElem< ChildT >::elem_eachChild ( std::function< void(Elem *) > const &  )
overrideprotectedvirtual

Just used for debugging.

Reimplemented from iv::Elem.

Definition at line 90 of file VectorChildrenElem.inl.

◆ elem_childDisconnect()

template<class ChildT >
void iv::VectorChildrenElem< ChildT >::elem_childDisconnect ( Elem child)
overrideprotectedvirtual

Reimplemented from iv::Elem.

Definition at line 97 of file VectorChildrenElem.inl.

◆ input_eachChild()

template<class ChildT >
void iv::VectorChildrenElem< ChildT >::input_eachChild ( std::function< void(InputNode *) > const &  )
overrideprotectedvirtual

Should consistently give the same nodes and in the same order, if they could react to the same inputs, causing need for priority resolution. When the given children change, InputNode::input_deactivate should be called on all children that were removed from the set and input_treeChanged should be called

Reimplemented from iv::Elem.

Definition at line 103 of file VectorChildrenElem.inl.

◆ input_childDisconnect()

template<class ChildT >
void iv::VectorChildrenElem< ChildT >::input_childDisconnect ( InputNode child)
overrideprotectedvirtual

Reimplemented from iv::Elem.

Definition at line 112 of file VectorChildrenElem.inl.

Member Data Documentation

◆ cm

template<class ChildT >
ClientMarker iv::VectorChildrenElem< ChildT >::cm

Definition at line 15 of file VectorChildrenElem.hpp.

◆ children

template<class ChildT >
std::vector< ChildT * > iv::VectorChildrenElem< ChildT >::children
protected

Definition at line 34 of file VectorChildrenElem.hpp.

◆ children_dirty

template<class ChildT >
bool iv::VectorChildrenElem< ChildT >::children_dirty
protected

Definition at line 35 of file VectorChildrenElem.hpp.


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