15 #include <vsg/core/Array.h>
16 #include <vsg/core/Array2D.h>
17 #include <vsg/core/Array3D.h>
18 #include <vsg/core/Mask.h>
19 #include <vsg/core/Value.h>
37 class MatrixTransform;
41 class VertexIndexDraw;
47 class DirectionalLight;
64 class BindDescriptorSet;
65 class BindDescriptorSets;
67 class DescriptorBuffer;
68 class DescriptorImage;
70 class BindVertexBuffers;
71 class BindIndexBuffer;
72 class BindComputePipeline;
73 class BindGraphicsPipeline;
74 class BindRayTracingPipeline;
75 class GraphicsPipeline;
76 class ComputePipeline;
77 class RayTracingPipeline;
81 class GraphicsPipelineState;
82 class VertexInputState;
83 class InputAssemblyState;
84 class TessellationState;
86 class RasterizationState;
87 class MultisampleState;
88 class DepthStencilState;
89 class ColorBlendState;
92 class ClearAttachments;
98 class CopyQueryPoolResults;
102 class DrawMeshTasksIndirect;
103 class DrawMeshTasksIndirectCount;
108 class ExposeWindowEvent;
109 class ConfigureWindowEvent;
110 class CloseWindowEvent;
113 class KeyReleaseEvent;
115 class ButtonPressEvent;
116 class ButtonReleaseEvent;
119 class TouchDownEvent;
121 class TouchMoveEvent;
122 class ScrollWheelEvent;
123 class TerminateEvent;
144 Mask traversalMask = MASK_ALL;
145 Mask overrideMask = MASK_OFF;
147 virtual void apply(
Object&);
150 virtual void apply(
Data&);
153 virtual void apply(stringValue&);
154 virtual void apply(boolValue&);
155 virtual void apply(intValue&);
156 virtual void apply(uintValue&);
157 virtual void apply(floatValue&);
158 virtual void apply(doubleValue&);
159 virtual void apply(vec2Value&);
160 virtual void apply(vec4Value&);
161 virtual void apply(vec3Value&);
162 virtual void apply(dvec2Value&);
163 virtual void apply(dvec3Value&);
164 virtual void apply(dvec4Value&);
165 virtual void apply(bvec2Value&);
166 virtual void apply(bvec3Value&);
167 virtual void apply(bvec4Value&);
168 virtual void apply(ubvec2Value&);
169 virtual void apply(ubvec3Value&);
170 virtual void apply(ubvec4Value&);
171 virtual void apply(svec2Value&);
172 virtual void apply(svec3Value&);
173 virtual void apply(svec4Value&);
174 virtual void apply(usvec2Value&);
175 virtual void apply(usvec3Value&);
176 virtual void apply(usvec4Value&);
177 virtual void apply(ivec2Value&);
178 virtual void apply(ivec3Value&);
179 virtual void apply(ivec4Value&);
180 virtual void apply(uivec2Value&);
181 virtual void apply(uivec3Value&);
182 virtual void apply(uivec4Value&);
185 virtual void apply(byteArray&);
186 virtual void apply(ubyteArray&);
187 virtual void apply(shortArray&);
188 virtual void apply(ushortArray&);
189 virtual void apply(intArray&);
190 virtual void apply(uintArray&);
191 virtual void apply(floatArray&);
192 virtual void apply(doubleArray&);
193 virtual void apply(vec2Array&);
194 virtual void apply(vec3Array&);
195 virtual void apply(vec4Array&);
196 virtual void apply(dvec2Array&);
197 virtual void apply(dvec3Array&);
198 virtual void apply(dvec4Array&);
199 virtual void apply(bvec2Array&);
200 virtual void apply(bvec3Array&);
201 virtual void apply(bvec4Array&);
202 virtual void apply(svec2Array&);
203 virtual void apply(svec3Array&);
204 virtual void apply(svec4Array&);
205 virtual void apply(ivec2Array&);
206 virtual void apply(ivec3Array&);
207 virtual void apply(ivec4Array&);
208 virtual void apply(ubvec2Array&);
209 virtual void apply(ubvec3Array&);
210 virtual void apply(ubvec4Array&);
211 virtual void apply(usvec2Array&);
212 virtual void apply(usvec3Array&);
213 virtual void apply(usvec4Array&);
214 virtual void apply(uivec2Array&);
215 virtual void apply(uivec3Array&);
216 virtual void apply(uivec4Array&);
217 virtual void apply(mat4Array&);
218 virtual void apply(dmat4Array&);
219 virtual void apply(block64Array&);
220 virtual void apply(block128Array&);
223 virtual void apply(ubyteArray2D&);
224 virtual void apply(ushortArray2D&);
225 virtual void apply(uintArray2D&);
226 virtual void apply(floatArray2D&);
227 virtual void apply(doubleArray2D&);
228 virtual void apply(vec2Array2D&);
229 virtual void apply(vec3Array2D&);
230 virtual void apply(vec4Array2D&);
231 virtual void apply(dvec2Array2D&);
232 virtual void apply(dvec3Array2D&);
233 virtual void apply(dvec4Array2D&);
234 virtual void apply(bvec2Array2D&);
235 virtual void apply(bvec3Array2D&);
236 virtual void apply(bvec4Array2D&);
237 virtual void apply(svec2Array2D&);
238 virtual void apply(svec3Array2D&);
239 virtual void apply(svec4Array2D&);
240 virtual void apply(ivec2Array2D&);
241 virtual void apply(ivec3Array2D&);
242 virtual void apply(ivec4Array2D&);
243 virtual void apply(ubvec2Array2D&);
244 virtual void apply(ubvec3Array2D&);
245 virtual void apply(ubvec4Array2D&);
246 virtual void apply(usvec2Array2D&);
247 virtual void apply(usvec3Array2D&);
248 virtual void apply(usvec4Array2D&);
249 virtual void apply(uivec2Array2D&);
250 virtual void apply(uivec3Array2D&);
251 virtual void apply(uivec4Array2D&);
252 virtual void apply(block64Array2D&);
253 virtual void apply(block128Array2D&);
256 virtual void apply(ubyteArray3D&);
257 virtual void apply(ushortArray3D&);
258 virtual void apply(uintArray3D&);
259 virtual void apply(floatArray3D&);
260 virtual void apply(doubleArray3D&);
261 virtual void apply(vec2Array3D&);
262 virtual void apply(vec3Array3D&);
263 virtual void apply(vec4Array3D&);
264 virtual void apply(dvec2Array3D&);
265 virtual void apply(dvec3Array3D&);
266 virtual void apply(dvec4Array3D&);
267 virtual void apply(ubvec2Array3D&);
268 virtual void apply(ubvec3Array3D&);
269 virtual void apply(ubvec4Array3D&);
270 virtual void apply(block64Array3D&);
271 virtual void apply(block128Array3D&);
274 virtual void apply(
Node&);
276 virtual void apply(
Group&);
278 virtual void apply(
LOD&);
289 virtual void apply(
Bin&);
290 virtual void apply(
Switch&);
291 virtual void apply(
Light&);
298 virtual void apply(
Text&);
336 virtual void apply(
Draw&);
376 virtual void apply(
Camera&);
379 virtual void apply(
View&);
380 virtual void apply(
Viewer&);
392 void Array<T>::accept(Visitor& visitor) { visitor.apply(*
this); }
396 void Array2D<T>::accept(Visitor& visitor) { visitor.apply(*
this); }
400 void Array3D<T>::accept(Visitor& visitor) { visitor.apply(*
this); }
AmbientLight represents an ambient light source.
Definition: Light.h:41
Definition: AnimationPath.h:27
BeginQuery command encapsulates vkCmdBeginQuery call and associated functionality.
Definition: BeginQuery.h:22
BindComputePipeline state command encapsulates the vkCmdBindPipeline call for a ComputePipeline.
Definition: ComputePipeline.h:65
Definition: BindDescriptorSet.h:90
BindDescriptorSets state command encapsulates vkCmdBindDescriptorSets call and associated settings fo...
Definition: BindDescriptorSet.h:25
BindGraphicsPipeline state command encapsulates the vkCmdBindPipeline call for a GraphicsPipeline.
Definition: GraphicsPipeline.h:93
BindIndexBuffer command encapsulates vkBindIndexBuffer call and associated settings.
Definition: BindIndexBuffer.h:28
BindRayTracingPipeline state command encapsulates vkCmdBindPipeline for a RayTracingPipeline.
Definition: RayTracingPipeline.h:85
BindVertexBuffers command encapsulates vkBindVertexBuffers call and associated settings.
Definition: BindVertexBuffers.h:25
BufferInfo encapsulates the settings that map to VkDescriptorBufferInfo.
Definition: BufferInfo.h:27
ClearAttachments command encapsulates vkCmdCopyAttachments functionality and associated settings.
Definition: ClearAttachments.h:22
CloseWindowEvent represents a window close event.
Definition: WindowEvent.h:87
ColorBlendState encapsulates to VkPipelineColorBlendStateCreateInfo settings passed when setting up G...
Definition: ColorBlendState.h:22
CommandBuffer encapsulates VkCommandBuffer.
Definition: CommandBuffer.h:27
CommandGraph is a group node that sits at the top of the scene graph and manages the recording of it'...
Definition: CommandGraph.h:27
Command base class from encapsualting vkCmd* calls and associated settings.
Definition: Command.h:25
Definition: Commands.h:29
ComputePipeline encapsulates compute VkPipeline and the VkComputePipelineCreateInfo settings used to ...
Definition: ComputePipeline.h:24
CopyQueryPoolResults commands encapsulates vkCmdCopyQueryPoolResults and associated settings.
Definition: CopyQueryPoolResults.h:23
CullNode that enables view frustum culling on a list of children.
Definition: CullGroup.h:23
Definition: CullNode.h:25
Definition: DepthSorted.h:27
DepthStencilState encapsulates to VkPipelineDepthStencilStateCreateInfo settings passed when setting ...
Definition: DepthStencilState.h:22
Definition: DescriptorBuffer.h:24
Definition: DescriptorImage.h:24
DescriptorSet encapsulates VkDescriptorSet and VkDescriptorSetAllocateInfo settings used to describe ...
Definition: DescriptorSet.h:26
Definition: Descriptor.h:28
DirectionalLight represents a directional light source - used for light sources that are treated as i...
Definition: Light.h:53
DrawIndexed command encapsulates vkCmdDrawIndexed call and associated settings.
Definition: DrawIndexed.h:24
DrawMeshTasksIndirectCount command encapsulates vkCmdDrawMeshTasksIndirectCountEXT call and associate...
Definition: DrawMeshTasksIndirectCount.h:23
DrawMeshTasksIndirect command encapsulates vkCmdDrawMeshTasksIndirectEXT call and associated paramete...
Definition: DrawMeshTasksIndirect.h:23
Definition: DrawMeshTasks.h:22
Draw command encapsulates vkCmdDraw call and associated settings.
Definition: Draw.h:24
DynamicState encapsulates to VkPipelineDynamicStateCreateInfo settings passed when setting up Graphic...
Definition: DynamicState.h:22
encapsulation of vkCmdEndQuery
Definition: EndQuery.h:22
ExposeWindowEvent represents a window expose event.
Definition: WindowEvent.h:41
Definition: External.h:31
Definition: ApplicationEvent.h:37
FrameStamp represents the time and frame count of a specific frame.
Definition: FrameStamp.h:22
Definition: Geometry.h:30
Definition: GraphicsPipeline.h:29
GraphicsPipeline encapsulates graphics VkPipeline and the VkGraphicsPipelineCreateInfo settings used ...
Definition: GraphicsPipeline.h:46
Group node provides a list of children.
Definition: Group.h:24
KeyEvent is a base class for key events.
Definition: KeyEvent.h:285
KeyPressEvent represents a key press event.
Definition: KeyEvent.h:308
KeyReleaseEvent represents a key release event.
Definition: KeyEvent.h:319
MoveEvent represent a button move event.
Definition: PointerEvent.h:88
MultisampleState encapsulates to VkPipelineMultisampleStateCreateInfo settings passed when setting up...
Definition: MultisampleState.h:22
Simple container class that has a list of vsg::Object as children.
Definition: Objects.h:25
Definition: PagedLOD.h:36
PointLight represents a local point light source where all light radiants event from the light positi...
Definition: Light.h:67
PointerEvent is a base class for mouse pointer events.
Definition: PointerEvent.h:33
Definition: QuadGroup.h:29
QueryPool encapsulates the VkQueryPool and the VkQueryPoolCreateInfo settings used to set it up.
Definition: QueryPool.h:23
RasterizationState encapsulates to VkPipelineRasterizationStateCreateInfo settings passed when settin...
Definition: RasterizationState.h:22
Definition: RayTracingPipeline.h:26
Definition: RenderGraph.h:28
RenderPass encapsulation of VkRenderPass.
Definition: RenderPass.h:86
ResetQueryPool command encapsulates vkCmdResetQueryPool functionality.
Definition: ResetQueryPool.h:23
ResourceHints provides settings that help preallocation of Vulkan resources and memory.
Definition: ResourceHints.h:22
ShaderStage encapsulates to VkPipelineShaderStageCreateInfo settings passed when setting up GraphicsP...
Definition: ShaderStage.h:24
SpotLight represents a local point light source which intensity varies as a spot light.
Definition: Light.h:81
Definition: StateCommand.h:23
Definition: StateGroup.h:32
Definition: StateSwitch.h:22
Switch node for toggling on/off recording of children.
Definition: Switch.h:25
TerminateEvent represents a application terminate event.
Definition: ApplicationEvent.h:24
TessellationState encapsulates to VkPipelineTessellationStateCreateInfo settings passed when setting ...
Definition: TessellationState.h:22
Definition: TextGroup.h:27
Definition: TextLayout.h:35
Definition: TextTechnique.h:25
TouchDownEvent represents a touch down event.
Definition: TouchEvent.h:45
TouchEvent is a base class touch events.
Definition: TouchEvent.h:24
TouchMoveEvent represents a touch move event.
Definition: TouchEvent.h:67
TouchUpEvent represents a touch up event.
Definition: TouchEvent.h:56
UIEvent is a base class for user interface events.
Definition: UIEvent.h:28
Definition: VertexDraw.h:25
Definition: VertexIndexDraw.h:25
View class is Group class that pairs a Camera that defines the view with a subgraph that defines the ...
Definition: View.h:25
ViewportState encapsulates to VkPipelineViewportStateCreateInfo settings passed when setting up Graph...
Definition: ViewportState.h:24
Definition: Visitor.h:140
WindowEvent is the base class for events related to a window.
Definition: WindowEvent.h:24
WriteTimestamp command encapsulates vkCmdWriteTimestamp call and settings passed to it.
Definition: WriteTimestamp.h:22