15 #include <vsg/nodes/Node.h> 
   16 #include <vsg/state/ArrayState.h> 
   26         using NodePath = std::vector<const Node*>;
 
   27         using ArrayStateStack = std::vector<ref_ptr<ArrayState>>;
 
   34         void apply(
const Node& node) 
override;
 
   35         void apply(
const StateGroup& stategroup) 
override;
 
   36         void apply(
const Transform& transform) 
override;
 
   37         void apply(
const LOD& lod) 
override;
 
   38         void apply(
const PagedLOD& plod) 
override;
 
   39         void apply(
const CullNode& cn) 
override;
 
   42         void apply(
const Geometry& geometry) 
override;
 
   46         void apply(
const Draw& draw) 
override;
 
   47         void apply(
const DrawIndexed& drawIndexed) 
override;
 
   49         void apply(
const BufferInfo& bufferInfo) 
override;
 
   50         void apply(
const ushortArray& array) 
override;
 
   51         void apply(
const uintArray& array) 
override;
 
   60         virtual void popTransform() = 0;
 
   66         virtual bool intersectDraw(uint32_t firstVertex, uint32_t vertexCount, uint32_t firstInstance, uint32_t instanceCount) = 0;
 
   69         virtual bool intersectDrawIndexed(uint32_t firstIndex, uint32_t indexCount, uint32_t firstInstance, uint32_t instanceCount) = 0;
 
   72         std::vector<dmat4>& 
localToWorldStack() { 
return arrayStateStack.back()->localToWorldStack; }
 
   75         std::vector<dmat4>& 
worldToLocalStack() { 
return arrayStateStack.back()->worldToLocalStack; }
 
   78         ArrayStateStack arrayStateStack;
 
BindIndexBuffer command encapsulates vkBindIndexBuffer call and associated settings.
Definition: BindIndexBuffer.h:28
BindVertexBuffers command encapsulates vkBindVertexBuffers call and associated settings.
Definition: BindVertexBuffers.h:25
BufferInfo encapsulates the settings that map to VkDescriptorBufferInfo.
Definition: BufferInfo.h:27
Definition: CullNode.h:25
DrawIndexed command encapsulates vkCmdDrawIndexed call and associated settings.
Definition: DrawIndexed.h:24
Draw command encapsulates vkCmdDraw call and associated settings.
Definition: Draw.h:24
Definition: Geometry.h:30
Definition: Intersector.h:24
virtual bool intersectDraw(uint32_t firstVertex, uint32_t vertexCount, uint32_t firstInstance, uint32_t instanceCount)=0
intersect with a vkCmdDraw primitive
virtual bool intersects(const dsphere &sphere)=0
check for intersection intersects with sphere
std::vector< dmat4 > & worldToLocalStack()
get the current world to local matrix stack
Definition: Intersector.h:75
virtual bool intersectDrawIndexed(uint32_t firstIndex, uint32_t indexCount, uint32_t firstInstance, uint32_t instanceCount)=0
intersect with a vkCmdDrawIndexed primitive
virtual void pushTransform(const Transform &transform)=0
clone and transform this Intersector to provide a new Intersector in local coordinates
std::vector< dmat4 > & localToWorldStack()
get the current local to world matrix stack
Definition: Intersector.h:72
Definition: PagedLOD.h:36
Definition: StateGroup.h:32
Definition: VertexIndexDraw.h:25