vsg 1.1.9
VulkanSceneGraph library
 
Loading...
Searching...
No Matches
ConstVisitor.h
1#pragma once
2
3/* <editor-fold desc="MIT License">
4
5Copyright(c) 2018 Robert Osfield
6
7Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
8
9The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
10
11THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
12
13</editor-fold> */
14
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>
20
21namespace vsg
22{
23 // forward declare core Objects
24 class Objects;
25 class External;
26
27 // forward declare node classes
28 class Node;
29 class Commands;
30 class Group;
31 class QuadGroup;
32 class LOD;
33 class PagedLOD;
34 class StateGroup;
35 class CullGroup;
36 class CullNode;
37 class Transform;
38 class MatrixTransform;
39 class CoordinateFrame;
40 class Geometry;
41 class VertexDraw;
42 class VertexIndexDraw;
43 class DepthSorted;
44 class Layer;
45 class Bin;
46 class Switch;
47 class Light;
48 class AmbientLight;
49 class DirectionalLight;
50 class PointLight;
51 class SpotLight;
53 class RegionOfInterest;
54
55 // forward declare text classes
56 class Text;
57 class TextGroup;
58 class TextTechnique;
59 class TextLayout;
60
61 // forward declare animation classes
62 class Animation;
63 class AnimationGroup;
64 class AnimationSampler;
65 class JointSampler;
66 class MorphSampler;
67 class TransformSampler;
68 class CameraSampler;
69 class Joint;
70
71 // forward declare vulkan classes
72 class BufferInfo;
73 class ImageInfo;
74 class ImageView;
75 class Image;
76 class Compilable;
77 class Command;
78 class StateCommand;
79 class StateSwitch;
80 class CommandBuffer;
81 class RenderPass;
85 class Descriptor;
86 class DescriptorBuffer;
87 class DescriptorImage;
88 class DescriptorSet;
90 class BindIndexBuffer;
94 class GraphicsPipeline;
95 class ComputePipeline;
97 class Draw;
98 class DrawIndexed;
99 class ShaderStage;
101 class VertexInputState;
102 class InputAssemblyState;
103 class TessellationState;
104 class ViewportState;
105 class RasterizationState;
106 class MultisampleState;
107 class DepthStencilState;
108 class ColorBlendState;
109 class DynamicState;
110 class ResourceHints;
111 class ClearAttachments;
112 class ClearColorImage;
114 class QueryPool;
115 class ResetQueryPool;
116 class BeginQuery;
117 class EndQuery;
118 class WriteTimestamp;
120
121 // forward declare rtx classes
122 class DrawMeshTasks;
125
126 // forward declare ui events classes
127 class UIEvent;
128 class WindowEvent;
129 class ExposeWindowEvent;
131 class CloseWindowEvent;
132 class FocusInEvent;
133 class FocusOutEvent;
134 class KeyEvent;
135 class KeyPressEvent;
136 class KeyReleaseEvent;
137 class PointerEvent;
138 class ButtonPressEvent;
139 class ButtonReleaseEvent;
140 class MoveEvent;
141 class TouchEvent;
142 class TouchDownEvent;
143 class TouchUpEvent;
144 class TouchMoveEvent;
145 class ScrollWheelEvent;
146 class TerminateEvent;
147 class FrameEvent;
148
149 // forward declare util classes
151
152 // forward declare viewer classes
153 class Camera;
154 class CommandGraph;
156 class RenderGraph;
157 class View;
158 class Viewer;
159 class ViewMatrix;
160 class LookAt;
161 class LookDirection;
162 class RelativeViewMatrix;
163 class TrackingViewMatrix;
164 class ProjectionMatrix;
165 class Perspective;
166 class Orthographic;
167 class RelativeProjection;
169
170 // forward declare general classes
171 class FrameStamp;
172 class Instrumentation;
173
174 class VSG_DECLSPEC ConstVisitor : public Object
175 {
176 public:
177 ConstVisitor();
178
179 ConstVisitor(const ConstVisitor& rhs, const CopyOp& copyop = {}) :
180 Object(rhs, copyop),
181 traversalMask(rhs.traversalMask),
182 overrideMask(rhs.overrideMask) {}
183
184 Mask traversalMask = MASK_ALL;
185 Mask overrideMask = MASK_OFF;
186
187 virtual Instrumentation* getInstrumentation() { return nullptr; }
188
189 virtual void apply(const Object&);
190 virtual void apply(const Objects&);
191 virtual void apply(const External&);
192 virtual void apply(const Data&);
193
194 // Values
195 virtual void apply(const stringValue&);
196 virtual void apply(const wstringValue&);
197 virtual void apply(const boolValue&);
198 virtual void apply(const intValue&);
199 virtual void apply(const uintValue&);
200 virtual void apply(const floatValue&);
201 virtual void apply(const doubleValue&);
202 virtual void apply(const vec2Value&);
203 virtual void apply(const vec3Value&);
204 virtual void apply(const vec4Value&);
205 virtual void apply(const dvec2Value&);
206 virtual void apply(const dvec3Value&);
207 virtual void apply(const dvec4Value&);
208 virtual void apply(const bvec2Value&);
209 virtual void apply(const bvec3Value&);
210 virtual void apply(const bvec4Value&);
211 virtual void apply(const ubvec2Value&);
212 virtual void apply(const ubvec3Value&);
213 virtual void apply(const ubvec4Value&);
214 virtual void apply(const svec2Value&);
215 virtual void apply(const svec3Value&);
216 virtual void apply(const svec4Value&);
217 virtual void apply(const usvec2Value&);
218 virtual void apply(const usvec3Value&);
219 virtual void apply(const usvec4Value&);
220 virtual void apply(const ivec2Value&);
221 virtual void apply(const ivec3Value&);
222 virtual void apply(const ivec4Value&);
223 virtual void apply(const uivec2Value&);
224 virtual void apply(const uivec3Value&);
225 virtual void apply(const uivec4Value&);
226 virtual void apply(const mat4Value&);
227 virtual void apply(const dmat4Value&);
228
229 // Arrays
230 virtual void apply(const byteArray&);
231 virtual void apply(const ubyteArray&);
232 virtual void apply(const shortArray&);
233 virtual void apply(const ushortArray&);
234 virtual void apply(const intArray&);
235 virtual void apply(const uintArray&);
236 virtual void apply(const floatArray&);
237 virtual void apply(const doubleArray&);
238 virtual void apply(const vec2Array&);
239 virtual void apply(const vec3Array&);
240 virtual void apply(const vec4Array&);
241 virtual void apply(const dvec2Array&);
242 virtual void apply(const dvec3Array&);
243 virtual void apply(const dvec4Array&);
244 virtual void apply(const bvec2Array&);
245 virtual void apply(const bvec3Array&);
246 virtual void apply(const bvec4Array&);
247 virtual void apply(const svec2Array&);
248 virtual void apply(const svec3Array&);
249 virtual void apply(const svec4Array&);
250 virtual void apply(const ivec2Array&);
251 virtual void apply(const ivec3Array&);
252 virtual void apply(const ivec4Array&);
253 virtual void apply(const ubvec2Array&);
254 virtual void apply(const ubvec3Array&);
255 virtual void apply(const ubvec4Array&);
256 virtual void apply(const usvec2Array&);
257 virtual void apply(const usvec3Array&);
258 virtual void apply(const usvec4Array&);
259 virtual void apply(const uivec2Array&);
260 virtual void apply(const uivec3Array&);
261 virtual void apply(const uivec4Array&);
262 virtual void apply(const mat4Array&);
263 virtual void apply(const dmat4Array&);
264 virtual void apply(const block64Array&);
265 virtual void apply(const block128Array&);
266
267 // Array2Ds
268 virtual void apply(const byteArray2D&);
269 virtual void apply(const ubyteArray2D&);
270 virtual void apply(const shortArray2D&);
271 virtual void apply(const ushortArray2D&);
272 virtual void apply(const intArray2D&);
273 virtual void apply(const uintArray2D&);
274 virtual void apply(const floatArray2D&);
275 virtual void apply(const doubleArray2D&);
276 virtual void apply(const vec2Array2D&);
277 virtual void apply(const vec3Array2D&);
278 virtual void apply(const vec4Array2D&);
279 virtual void apply(const dvec2Array2D&);
280 virtual void apply(const dvec3Array2D&);
281 virtual void apply(const dvec4Array2D&);
282 virtual void apply(const bvec2Array2D&);
283 virtual void apply(const bvec3Array2D&);
284 virtual void apply(const bvec4Array2D&);
285 virtual void apply(const svec2Array2D&);
286 virtual void apply(const svec3Array2D&);
287 virtual void apply(const svec4Array2D&);
288 virtual void apply(const ivec2Array2D&);
289 virtual void apply(const ivec3Array2D&);
290 virtual void apply(const ivec4Array2D&);
291 virtual void apply(const ubvec2Array2D&);
292 virtual void apply(const ubvec3Array2D&);
293 virtual void apply(const ubvec4Array2D&);
294 virtual void apply(const usvec2Array2D&);
295 virtual void apply(const usvec3Array2D&);
296 virtual void apply(const usvec4Array2D&);
297 virtual void apply(const uivec2Array2D&);
298 virtual void apply(const uivec3Array2D&);
299 virtual void apply(const uivec4Array2D&);
300 virtual void apply(const block64Array2D&);
301 virtual void apply(const block128Array2D&);
302
303 // Array3Ds
304 virtual void apply(const byteArray3D&);
305 virtual void apply(const ubyteArray3D&);
306 virtual void apply(const shortArray3D&);
307 virtual void apply(const ushortArray3D&);
308 virtual void apply(const intArray3D&);
309 virtual void apply(const uintArray3D&);
310 virtual void apply(const floatArray3D&);
311 virtual void apply(const doubleArray3D&);
312 virtual void apply(const vec2Array3D&);
313 virtual void apply(const vec3Array3D&);
314 virtual void apply(const vec4Array3D&);
315 virtual void apply(const dvec2Array3D&);
316 virtual void apply(const dvec3Array3D&);
317 virtual void apply(const dvec4Array3D&);
318 virtual void apply(const ubvec2Array3D&);
319 virtual void apply(const ubvec3Array3D&);
320 virtual void apply(const ubvec4Array3D&);
321 virtual void apply(const block64Array3D&);
322 virtual void apply(const block128Array3D&);
323
324 // Nodes
325 virtual void apply(const Node&);
326 virtual void apply(const Compilable&);
327 virtual void apply(const Commands&);
328 virtual void apply(const Group&);
329 virtual void apply(const QuadGroup&);
330 virtual void apply(const LOD&);
331 virtual void apply(const PagedLOD&);
332 virtual void apply(const StateGroup&);
333 virtual void apply(const CullGroup&);
334 virtual void apply(const CullNode&);
335 virtual void apply(const Transform&);
336 virtual void apply(const MatrixTransform&);
337 virtual void apply(const CoordinateFrame&);
338 virtual void apply(const Geometry&);
339 virtual void apply(const VertexDraw&);
340 virtual void apply(const VertexIndexDraw&);
341 virtual void apply(const DepthSorted&);
342 virtual void apply(const Layer&);
343 virtual void apply(const Bin&);
344 virtual void apply(const Switch&);
345 virtual void apply(const Light&);
346 virtual void apply(const AmbientLight&);
347 virtual void apply(const DirectionalLight&);
348 virtual void apply(const PointLight&);
349 virtual void apply(const SpotLight&);
350 virtual void apply(const InstrumentationNode&);
351 virtual void apply(const RegionOfInterest&);
352
353 // text
354 virtual void apply(const Text&);
355 virtual void apply(const TextGroup&);
356 virtual void apply(const TextTechnique&);
357 virtual void apply(const TextLayout&);
358
359 // animation
360 virtual void apply(const Animation&);
361 virtual void apply(const AnimationGroup&);
362 virtual void apply(const AnimationSampler&);
363 virtual void apply(const JointSampler&);
364 virtual void apply(const MorphSampler&);
365 virtual void apply(const TransformSampler&);
366 virtual void apply(const CameraSampler&);
367 virtual void apply(const Joint&);
368
369 // Vulkan nodes
370 virtual void apply(const BufferInfo&);
371 virtual void apply(const ImageInfo&);
372 virtual void apply(const ImageView&);
373 virtual void apply(const Image&);
374 virtual void apply(const Command&);
375 virtual void apply(const StateCommand&);
376 virtual void apply(const StateSwitch&);
377 virtual void apply(const CommandBuffer&);
378 virtual void apply(const RenderPass&);
379 virtual void apply(const BindDescriptorSet&);
380 virtual void apply(const BindDescriptorSets&);
381 virtual void apply(const BindViewDescriptorSets&);
382 virtual void apply(const Descriptor&);
383 virtual void apply(const DescriptorBuffer&);
384 virtual void apply(const DescriptorImage&);
385 virtual void apply(const DescriptorSet&);
386 virtual void apply(const BindVertexBuffers&);
387 virtual void apply(const BindIndexBuffer&);
388 virtual void apply(const BindComputePipeline&);
389 virtual void apply(const BindGraphicsPipeline&);
390 virtual void apply(const BindRayTracingPipeline&);
391 virtual void apply(const GraphicsPipeline&);
392 virtual void apply(const ComputePipeline&);
393 virtual void apply(const RayTracingPipeline&);
394 virtual void apply(const GraphicsPipelineState&);
395 virtual void apply(const ShaderStage&);
396 virtual void apply(const VertexInputState&);
397 virtual void apply(const InputAssemblyState&);
398 virtual void apply(const TessellationState&);
399 virtual void apply(const ViewportState&);
400 virtual void apply(const RasterizationState&);
401 virtual void apply(const MultisampleState&);
402 virtual void apply(const DepthStencilState&);
403 virtual void apply(const ColorBlendState&);
404 virtual void apply(const DynamicState&);
405 virtual void apply(const ResourceHints&);
406 virtual void apply(const Draw&);
407 virtual void apply(const DrawIndexed&);
408 virtual void apply(const ClearAttachments&);
409 virtual void apply(const ClearColorImage&);
410 virtual void apply(const ClearDepthStencilImage&);
411 virtual void apply(const QueryPool&);
412 virtual void apply(const ResetQueryPool&);
413 virtual void apply(const BeginQuery&);
414 virtual void apply(const EndQuery&);
415 virtual void apply(const WriteTimestamp&);
416 virtual void apply(const CopyQueryPoolResults&);
417
418 // mesh shading classes
419 virtual void apply(const DrawMeshTasks&);
420 virtual void apply(const DrawMeshTasksIndirect&);
421 virtual void apply(const DrawMeshTasksIndirectCount&);
422
423 // ui events
424 virtual void apply(const UIEvent&);
425 virtual void apply(const WindowEvent&);
426 virtual void apply(const ExposeWindowEvent&);
427 virtual void apply(const ConfigureWindowEvent&);
428 virtual void apply(const CloseWindowEvent&);
429 virtual void apply(const FocusInEvent&);
430 virtual void apply(const FocusOutEvent&);
431 virtual void apply(const KeyEvent&);
432 virtual void apply(const KeyPressEvent&);
433 virtual void apply(const KeyReleaseEvent&);
434 virtual void apply(const PointerEvent&);
435 virtual void apply(const ButtonPressEvent&);
436 virtual void apply(const ButtonReleaseEvent&);
437 virtual void apply(const MoveEvent&);
438 virtual void apply(const TouchEvent&);
439 virtual void apply(const TouchDownEvent&);
440 virtual void apply(const TouchUpEvent&);
441 virtual void apply(const TouchMoveEvent&);
442 virtual void apply(const ScrollWheelEvent&);
443 virtual void apply(const TerminateEvent&);
444 virtual void apply(const FrameEvent&);
445
446 // utils
447 virtual void apply(const ShaderCompileSettings&);
448
449 // viewer
450 virtual void apply(const Camera&);
451 virtual void apply(const CommandGraph&);
452 virtual void apply(const SecondaryCommandGraph&);
453 virtual void apply(const RenderGraph&);
454 virtual void apply(const View&);
455 virtual void apply(const Viewer&);
456 virtual void apply(const ViewMatrix&);
457 virtual void apply(const LookAt&);
458 virtual void apply(const LookDirection&);
459 virtual void apply(const RelativeViewMatrix&);
460 virtual void apply(const TrackingViewMatrix&);
461 virtual void apply(const ProjectionMatrix&);
462 virtual void apply(const Perspective&);
463 virtual void apply(const Orthographic&);
464 virtual void apply(const RelativeProjection&);
465 virtual void apply(const EllipsoidPerspective&);
466
467 // general classes
468 virtual void apply(const FrameStamp&);
469
470 bool is_compatible(const std::type_info& type) const noexcept override { return typeid(ConstVisitor) == type || Object::is_compatible(type); }
471 };
472
473 // provide Value<>::accept() implementation
474 template<typename T>
475 void Value<T>::accept(ConstVisitor& visitor) const { visitor.apply(*this); }
476
477 // provide Array<>::accept() implementation
478 template<typename T>
479 void Array<T>::accept(ConstVisitor& visitor) const { visitor.apply(*this); }
480
481 // provide Array2D<>::accept() implementation
482 template<typename T>
483 void Array2D<T>::accept(ConstVisitor& visitor) const { visitor.apply(*this); }
484
485 // provide Array3D<>::accept() implementation
486 template<typename T>
487 void Array3D<T>::accept(ConstVisitor& visitor) const { visitor.apply(*this); }
488
489} // namespace vsg
AmbientLight represents an ambient light source.
Definition AmbientLight.h:24
AnimationGroup node provides a list of child nodes and a list of animations to animate them.
Definition AnimationGroup.h:24
Animation class that controls a single animation made up of one more samplers.
Definition Animation.h:44
Base class for animation samplers that sample animation data and set associated scene graph objects.
Definition Animation.h:24
BeginQuery command encapsulates vkCmdBeginQuery call and associated functionality.
Definition BeginQuery.h:22
Definition Bin.h:24
BindComputePipeline state command encapsulates the vkCmdBindPipeline call for a ComputePipeline.
Definition ComputePipeline.h:65
Definition BindDescriptorSet.h:92
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:109
BindIndexBuffer command encapsulates vkCmdBindIndexBuffer call and associated settings.
Definition BindIndexBuffer.h:28
BindRayTracingPipeline state command encapsulates vkCmdBindPipeline for a RayTracingPipeline.
Definition RayTracingPipeline.h:85
BindVertexBuffers command encapsulates vkCmdBindVertexBuffers call and associated settings.
Definition BindVertexBuffers.h:25
Definition ViewDependentState.h:54
BufferInfo encapsulates the settings that map to VkDescriptorBufferInfo.
Definition BufferInfo.h:27
ButtonPressEvent represents a button press event.
Definition PointerEvent.h:55
ButtonReleaseEvent represents a button release event.
Definition PointerEvent.h:72
Definition Camera.h:27
Animation sampler for sampling position, rotation and scale keyframes for setting camera view and pro...
Definition CameraSampler.h:111
ClearAttachments command encapsulates vkCmdClearAttachments functionality and associated settings.
Definition ClearAttachments.h:22
ClearColorImage command encapsulates vkCmdClearColorImage functionality and associated settings.
Definition ClearImage.h:23
ClearDepthStencilImage command encapsulates vkCmdClearDepthStencilImage functionality and associated ...
Definition ClearImage.h:38
CloseWindowEvent represents a window close event.
Definition WindowEvent.h:87
ColorBlendState encapsulates VkPipelineColorBlendStateCreateInfo settings passed when setting up Grap...
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 its...
Definition CommandGraph.h:28
Command base class for encapsulating vkCmd* calls and associated settings.
Definition Command.h:23
Definition Commands.h:29
Base class for encapsulating nodes that have Vulkan objects associated with them that will need compi...
Definition Compilable.h:23
ComputePipeline encapsulates compute VkPipeline and the VkComputePipelineCreateInfo settings used to ...
Definition ComputePipeline.h:24
ConfigureWindowEvent represents a window configure event - such as changes to the size of the window.
Definition WindowEvent.h:64
Definition ConstVisitor.h:175
CoordinateFrame provides support for astronomically large coordinates.
Definition CoordinateFrame.h:22
Definition Object.h:42
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 Data.h:110
Definition DepthSorted.h:27
DepthStencilState encapsulates VkPipelineDepthStencilStateCreateInfo settings passed when setting up ...
Definition DepthStencilState.h:22
Definition DescriptorBuffer.h:24
Definition Descriptor.h:26
Definition DescriptorImage.h:24
DescriptorSet encapsulates VkDescriptorSet and VkDescriptorSetAllocateInfo settings used to describe ...
Definition DescriptorSet.h:26
DirectionalLight represents a directional light source - used for light sources that are treated as i...
Definition DirectionalLight.h:24
Draw command encapsulates vkCmdDraw call and associated settings.
Definition Draw.h:24
DrawIndexed command encapsulates vkCmdDrawIndexed call and associated settings.
Definition DrawIndexed.h:24
Definition DrawMeshTasks.h:22
DrawMeshTasksIndirectCount command encapsulates vkCmdDrawMeshTasksIndirectCountEXT call and associate...
Definition DrawMeshTasksIndirectCount.h:23
DrawMeshTasksIndirect command encapsulates vkCmdDrawMeshTasksIndirectEXT call and associated paramete...
Definition DrawMeshTasksIndirect.h:23
DynamicState encapsulates VkPipelineDynamicStateCreateInfo settings passed when setting up GraphicsPi...
Definition DynamicState.h:22
Definition ProjectionMatrix.h:190
encapsulation of vkCmdEndQuery
Definition EndQuery.h:22
ExposeWindowEvent represents a window expose event.
Definition WindowEvent.h:41
Definition External.h:31
FocusInEvent represents a window acquiring focus event.
Definition WindowEvent.h:98
FocusOutEvent represents a window losing focus event.
Definition WindowEvent.h:109
Definition ApplicationEvent.h:37
FrameStamp represents the time and frame count of a specific frame.
Definition FrameStamp.h:22
Definition Geometry.h:30
GraphicsPipeline encapsulates graphics VkPipeline and the VkGraphicsPipelineCreateInfo settings used ...
Definition GraphicsPipeline.h:56
Definition GraphicsPipeline.h:29
Group node provides a list of children.
Definition Group.h:24
Image class encapsulates VkImage and VkImageCreateInfo settings used to set it up.
Definition Image.h:25
ImageInfo class provides the VkDescriptorImageInfo settings used when setting up vsg::/vkDescriptorIm...
Definition ImageInfo.h:23
ImageView class encapsulates VkImageView and VkImageViewCreateInfo settings used to set it up.
Definition ImageView.h:25
InputAssemblyState encapsulates VkPipelineInputAssemblyStateCreateInfo settings passed when setting u...
Definition InputAssemblyState.h:22
base class for Instrumentation implentations
Definition Instrumentation.h:51
InstrumentationNode enables instrumentation of a subgraph.
Definition InstrumentationNode.h:24
Definition Joint.h:22
Animation sampler for acumulating vsg::Joint hierarchies and assigned accumulated transform matrices ...
Definition JointSampler.h:23
KeyEvent is a base class for key events.
Definition KeyEvent.h:286
KeyPressEvent represents a key press event.
Definition KeyEvent.h:309
KeyReleaseEvent represents a key release event.
Definition KeyEvent.h:320
Definition LOD.h:33
Layer node is used to control which bin to place the subgraph in and what sort value to assign.
Definition Layer.h:23
Definition Light.h:26
LookAt is a ViewMatrix that implements the gluLookAt model for specifying the view matrix.
Definition ViewMatrix.h:53
LookDirection is a ViewMatrix that uses a position and rotation to set the view matrix.
Definition ViewMatrix.h:107
Definition MatrixTransform.h:24
Animation sampler for morphing geometry, implementation not yet completed.
Definition MorphSampler.h:48
MoveEvent represents a pointer move event.
Definition PointerEvent.h:89
MultisampleState encapsulates VkPipelineMultisampleStateCreateInfo settings passed when setting up Gr...
Definition MultisampleState.h:22
Definition Node.h:24
Simple container class that has a list of vsg::Object as children.
Definition Objects.h:25
Orthographic is a ProjectionMatrix that implements the glOrtho model for setting the projection matri...
Definition ProjectionMatrix.h:102
Definition PagedLOD.h:36
Perspective is a ProjectionMatrix that implements the gluPerspective model for setting the projection...
Definition ProjectionMatrix.h:50
PointLight represents a local point light source where all light radiants event from the light positi...
Definition PointLight.h:24
PointerEvent is a base class for mouse pointer events.
Definition PointerEvent.h:34
ProjectionMatrix is a base class for specifying the Camera projection matrix and its inverse.
Definition ProjectionMatrix.h:24
Definition QuadGroup.h:29
QueryPool encapsulates the VkQueryPool and the VkQueryPoolCreateInfo settings used to set it up.
Definition QueryPool.h:23
RasterizationState encapsulates VkPipelineRasterizationStateCreateInfo settings passed when setting u...
Definition RasterizationState.h:22
Definition RayTracingPipeline.h:26
RegionOfInterest node is inform applications/algorithms extents that should take account of.
Definition RegionOfInterest.h:23
RelativeProjection is a ProjectionMatrix that decorates another ProjectionMatrix and pre-multiplies i...
Definition ProjectionMatrix.h:162
RelativeViewMatrix is a ViewMatrix that decorates another ViewMatrix and pre-multiplies its transform...
Definition ViewMatrix.h:135
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:29
ScrollWheelEvent represents a scroll wheel event.
Definition ScrollWheelEvent.h:22
SecondaryCommandGraph is a specialization of CommandGraph that provides Vulkan secondary command buff...
Definition SecondaryCommandGraph.h:25
Definition ShaderModule.h:28
ShaderStage encapsulates VkPipelineShaderStageCreateInfo settings passed when setting up GraphicsPipe...
Definition ShaderStage.h:24
SpotLight represents a local point light source whose intensity varies as a spot light.
Definition SpotLight.h:24
Definition StateCommand.h:24
Definition StateGroup.h:32
Definition StateSwitch.h:22
Switch node for toggling on/off recording of children.
Definition Switch.h:25
TerminateEvent represents an application termination event.
Definition ApplicationEvent.h:24
TessellationState encapsulates VkPipelineTessellationStateCreateInfo settings passed when setting up ...
Definition TessellationState.h:22
Definition TextGroup.h:27
Definition Text.h:30
Definition TextLayout.h:35
Definition TextTechnique.h:25
TouchDownEvent represents a touch down event.
Definition TouchEvent.h:45
TouchEvent is a base class for 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
Definition ViewMatrix.h:155
Transform node is a pure virtual base class for positioning/scaling/rotating subgraphs.
Definition Transform.h:22
Animation sampler for sampling position, rotation and scale keyframes for setting transforms/joints.
Definition TransformSampler.h:70
UIEvent is a base class for user interface events.
Definition UIEvent.h:28
Definition VertexDraw.h:25
Definition VertexIndexDraw.h:25
VertexInputState encapsulates VkPipelineVertexInputStateCreateInfo settings passed when setting up Gr...
Definition VertexInputState.h:22
View is a Group class that pairs a Camera that defines the view with a subgraph that defines the scen...
Definition View.h:36
ViewMatrix is a base class for specifying the Camera view matrix and its inverse.
Definition ViewMatrix.h:23
Definition Viewer.h:33
ViewportState encapsulates VkPipelineViewportStateCreateInfo settings passed when setting up Graphics...
Definition ViewportState.h:24
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