15 #include <vsg/core/Mask.h>
16 #include <vsg/core/Object.h>
17 #include <vsg/core/type_name.h>
18 #include <vsg/maths/mat4.h>
37 class MatrixTransform;
44 class CulledPagedLODs;
48 class ViewDependentState;
51 class DirectionalLight;
66 template<
typename... Args>
72 std::size_t sizeofObject()
const noexcept
override {
return sizeof(
RecordTraversal); }
73 const char* className()
const noexcept
override {
return type_name<RecordTraversal>(); }
75 Mask traversalMask = MASK_ALL;
76 Mask overrideMask = MASK_OFF;
88 FrameStamp* getFrameStamp() {
return _frameStamp; }
93 void setProjectionAndViewMatrix(
const dmat4& projMatrix,
const dmat4& viewMatrix);
95 void apply(
const Object&
object);
98 void apply(
const Group& group);
99 void apply(
const QuadGroup& quadGroup);
100 void apply(
const LOD& lod);
101 void apply(
const PagedLOD& pagedLOD);
102 void apply(
const CullGroup& cullGroup);
103 void apply(
const CullNode& cullNode);
104 void apply(
const DepthSorted& depthSorted);
105 void apply(
const Switch& sw);
108 void apply(
const Light& light);
109 void apply(
const AmbientLight& light);
110 void apply(
const DirectionalLight& light);
111 void apply(
const PointLight& light);
112 void apply(
const SpotLight& light);
115 void apply(
const Transform& transform);
116 void apply(
const MatrixTransform& mt);
117 void apply(
const StateGroup&
object);
118 void apply(
const Commands& commands);
119 void apply(
const Command& command);
122 void apply(
const View& view);
128 virtual ~RecordTraversal();
130 FrameStamp* _frameStamp =
nullptr;
131 State* _state =
nullptr;
134 DatabasePager* _databasePager =
nullptr;
135 CulledPagedLODs* _culledPagedLODs =
nullptr;
137 int32_t _minimumBinNumber = 0;
138 std::vector<ref_ptr<Bin>> _bins;
139 ref_ptr<ViewDependentState> _viewDependentState;
CommandBuffer encapsulates VkCommandBuffer.
Definition: CommandBuffer.h:27
FrameStamp represents the time and frame count of a specific frame.
Definition: FrameStamp.h:22
RecordTraversal traverses a scene graph doing view frustum culling and invoking state/commands to rec...
Definition: RecordTraversal.h:59
State * getState()
get the current State object used to track state and projection/modelview matrices for current subgra...
Definition: RecordTraversal.h:79
uint32_t deviceID() const
get the current DeviceID for current subgraph being traversed
CommandBuffer * getCommandBuffer()
get the current CommandBuffer for current subgraph being traversed
vsg::State used by vsg::RecordTraversal to manage state stacks, projection, modelview matrix and frus...
Definition: State.h:228