vsg: include/vsg/core/ConstVisitor.h Source File

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