Container that allows us to directly modify model matrix of its child. Usable both in UI compositing and in world views. More...
#include <Transform.hpp>
Public Attributes | |
ClientMarker | cm |
DirtyAttr< float3 > | attr_position |
DirtyAttr< floatQuat > | attr_rotation |
DirtyAttr< float3 > | attr_scale |
DirtyAttr< float4x4 > | attr_deformation |
DirtyAttr< float3 > | attr_outerAnchor |
DirtyAttr< float3 > | attr_innerAnchor |
DirtyAttr< bool > | attr_propagateSize |
Public Attributes inherited from iv::OneChildElem< SlotChild > | |
ClientMarker | cm |
Public Attributes inherited from iv::Elem | |
ClientMarker | cm |
DirtyAttr< bool > | attr_enabled |
DirtyAttr< float4x4 > | modelTransform |
DirtyAttr< ShaderScissor > | scissor |
Public Attributes inherited from iv::InputNode | |
ClientMarker | cm |
Public Attributes inherited from iv::SlotChild | |
ClientMarker | cm |
DirtyAttr< float3 > | expectedSize |
DirtyAttr< float3 > | preferredSize |
DirtyAttr< float3 > | size |
Public Attributes inherited from iv::Pickable | |
ClientMarker | cm |
Protected Member Functions | |
virtual void | first_pass_impl (ElementRenderer *er) override |
virtual void | second_pass_impl (ElementRenderer *er) override |
Protected Member Functions inherited from iv::OneChildElem< 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) |
Additional Inherited Members | |
Protected Attributes inherited from iv::OneChildElem< SlotChild > | |
DirtyAttr< SlotChild * > | child |
Detailed Description
Container that allows us to directly modify model matrix of its child. Usable both in UI compositing and in world views.
Works in two modes, depending on value of Transform::propagateSize:
- When Transform::propagateSize is set to true, then Transform behaves basically like Slot that can have only one child and it can apply transform to child without either parent or the child really knowing about it. Transform does not step into SlotChild::size negotiation between parent and child node. This mode is useful for UI composition.
- When Transform::propagateSize is set to false, then Transform does not even try to fit child into parent container. SlotChild::preferredSize 0 is requested from parent and child gets its requested SlotChild::preferredSize. This mode is useful in world views, when child node does not necessarily need to fit inside parent node.
Definition at line 19 of file Transform.hpp.
Constructor & Destructor Documentation
◆ Transform()
iv::Transform::Transform | ( | Instance * | inst | ) |
Definition at line 8 of file Transform.cpp.
Member Function Documentation
◆ status()
void iv::Transform::status | ( | iv::TableDebugView * | view | ) |
Definition at line 25 of file Transform.cpp.
◆ position()
Definition at line 165 of file Transform.cpp.
◆ rotation()
Definition at line 171 of file Transform.cpp.
◆ scale()
Definition at line 177 of file Transform.cpp.
◆ deformation()
Definition at line 183 of file Transform.cpp.
◆ outerAnchor()
Definition at line 189 of file Transform.cpp.
◆ innerAnchor()
Definition at line 195 of file Transform.cpp.
◆ propagateSize()
Transform * iv::Transform::propagateSize | ( | bool | val | ) |
Definition at line 201 of file Transform.cpp.
◆ first_pass_impl()
|
overrideprotectedvirtual |
Implements iv::Elem.
Definition at line 41 of file Transform.cpp.
◆ second_pass_impl()
|
overrideprotectedvirtual |
Reimplemented from iv::Elem.
Definition at line 105 of file Transform.cpp.
◆ instance()
Member Data Documentation
◆ cm
ClientMarker iv::Transform::cm |
Definition at line 22 of file Transform.hpp.
◆ attr_position
Definition at line 30 of file Transform.hpp.
◆ attr_rotation
Definition at line 31 of file Transform.hpp.
◆ attr_scale
Definition at line 32 of file Transform.hpp.
◆ attr_deformation
Definition at line 33 of file Transform.hpp.
◆ attr_outerAnchor
Definition at line 35 of file Transform.hpp.
◆ attr_innerAnchor
Definition at line 36 of file Transform.hpp.
◆ attr_propagateSize
DirtyAttr< bool > iv::Transform::attr_propagateSize |
Default is false, which means that transform prefsize is 0 and child will get its preferred size. Transform may still have size higher than 0, therefore outer_anchor still has a meaning. True means that transform will have prefsize the same as its child prefsize and child will get size of transform.
Definition at line 43 of file Transform.hpp.
The documentation for this class was generated from the following files:
- ivorium_graphics/Elements/Transform.hpp
- ivorium_graphics/Elements/Transform.cpp