Transform.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include "Elem.hpp"
4 #include "Slot.hpp"
5 #include "OneChildElem.hpp"
6 
7 namespace iv
8 {
9 
19 class Transform : public OneChildElem< SlotChild >, public SlotChild
20 {
21 public:
23 using Elem::instance;
24 
25  Transform( Instance * inst );
26 
27  void status( iv::TableDebugView * view );
28 
29  // initialization parameters
34 
37 
44 
45  //
48  Transform * scale( float3 );
50 
53 
54  Transform * propagateSize( bool );
55 
56 protected:
57  // Elem
58  virtual void first_pass_impl( ElementRenderer * er ) override;
59  virtual void second_pass_impl( ElementRenderer * er ) override;
60 
61 private:
62  bool outer_transform_refresh;
63  bool inner_transform_refresh;
64  float4x4 outer_transform;
65  float4x4 inner_transform;
66 };
67 
68 }