15#include <vsg/core/ConstVisitor.h>
16#include <vsg/core/Data.h>
17#include <vsg/core/Inherit.h>
18#include <vsg/state/BufferInfo.h>
19#include <vsg/state/Sampler.h>
27 class VSG_DECLSPEC ArrayState :
public Inherit<ConstVisitor, ArrayState>
30 ArrayState() =
default;
31 ArrayState(
const ArrayState& rhs,
const CopyOp& copyop = {});
36 return ArrayState::create(*
this);
42 return ArrayState::create(*arrayState);
51 VkVertexInputRate inputRate = VK_VERTEX_INPUT_RATE_VERTEX;
54 std::vector<dmat4> localToWorldStack;
55 std::vector<dmat4> worldToLocalStack;
57 VkPrimitiveTopology topology = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST;
58 uint32_t vertex_attribute_location = 0;
68 using ConstVisitor::apply;
74 void apply(
const Geometry& geometry)
override;
81 void apply(
const BufferInfo& bufferInfo)
override;
83 void apply(
const vec3Array& array)
override;
84 void apply(
const Data& array)
override;
86 virtual void applyArrays(uint32_t firstBinding,
const BufferInfoList& in_arrays);
87 virtual void applyArrays(uint32_t firstBinding,
const DataList& in_arrays);
90 virtual void applyArray(uint32_t binding,
const ref_ptr<Data>& in_array);
95 virtual ~ArrayState() {}
103 class VSG_DECLSPEC NullArrayState :
public Inherit<ArrayState, NullArrayState>
107 explicit NullArrayState(
const ArrayState& as);
112 using ArrayState::apply;
114 void apply(
const vec3Array&)
override;
115 void apply(
const Data&)
override;
120 class VSG_DECLSPEC TranslationArrayState :
public Inherit<ArrayState, TranslationArrayState>
123 TranslationArrayState();
124 TranslationArrayState(
const TranslationArrayState& rhs);
125 explicit TranslationArrayState(
const ArrayState& rhs);
130 uint32_t translation_attribute_location = 7;
133 using ArrayState::apply;
141 class VSG_DECLSPEC TranslationRotationScaleArrayState :
public Inherit<ArrayState, TranslationRotationScaleArrayState>
144 TranslationRotationScaleArrayState();
145 TranslationRotationScaleArrayState(
const TranslationRotationScaleArrayState& rhs);
146 explicit TranslationRotationScaleArrayState(
const ArrayState& rhs);
151 uint32_t translation_attribute_location = 7;
152 uint32_t rotation_attribute_location = 8;
153 uint32_t scale_attribute_location = 9;
158 using ArrayState::apply;
166 class VSG_DECLSPEC DisplacementMapArrayState :
public Inherit<ArrayState, DisplacementMapArrayState>
169 DisplacementMapArrayState();
170 DisplacementMapArrayState(
const DisplacementMapArrayState& rhs);
171 explicit DisplacementMapArrayState(
const ArrayState& rhs);
177 uint32_t normal_attribute_location = 1;
178 uint32_t texcoord_attribute_location = 2;
180 uint32_t dm_binding = 7;
188 using ArrayState::apply;
200 class VSG_DECLSPEC TranslationAndDisplacementMapArrayState :
public Inherit<DisplacementMapArrayState, TranslationAndDisplacementMapArrayState>
203 TranslationAndDisplacementMapArrayState();
204 TranslationAndDisplacementMapArrayState(
const TranslationAndDisplacementMapArrayState& rhs);
205 explicit TranslationAndDisplacementMapArrayState(
const ArrayState& rhs);
207 uint32_t translation_attribute_location = 7;
219 class VSG_DECLSPEC BillboardArrayState :
public Inherit<ArrayState, BillboardArrayState>
222 BillboardArrayState();
223 BillboardArrayState(
const BillboardArrayState& rhs);
224 explicit BillboardArrayState(
const ArrayState& rhs);
229 uint32_t translation_attribute_location = 7;
232 using ArrayState::apply;
Definition ArrayState.h:28
virtual ref_ptr< ArrayState > cloneArrayState()
clone self
Definition ArrayState.h:34
BillboardArrayState is an ArrayState subclass for mapping vertex array data for billboard instanced g...
Definition ArrayState.h:220
ref_ptr< ArrayState > cloneArrayState() override
clone self
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:111
BindVertexBuffers command encapsulates vkCmdBindVertexBuffers call and associated settings.
Definition BindVertexBuffers.h:25
BufferInfo encapsulates the settings that map to VkDescriptorBufferInfo.
Definition BufferInfo.h:27
Definition DescriptorImage.h:24
DescriptorSet encapsulates VkDescriptorSet and VkDescriptorSetAllocateInfo settings used to describe ...
Definition DescriptorSet.h:26
DisplacementMapArrayState is an ArrayState subclass for mapping vertex array data for displacement ma...
Definition ArrayState.h:167
ref_ptr< ArrayState > cloneArrayState() override
clone self
Definition InstanceDraw.h:25
Definition InstanceDrawIndexed.h:25
Definition InstanceNode.h:34
Definition ArrayState.h:104
ref_ptr< ArrayState > cloneArrayState() override
clone self
TranslationAndDisplacementMapArrayState is an ArrayState subclass for mapping vertex array data for i...
Definition ArrayState.h:201
ref_ptr< ArrayState > cloneArrayState() override
clone self
TranslationArrayState is an ArrayState subclass for mapping vertex array data for instanced geometrie...
Definition ArrayState.h:121
ref_ptr< ArrayState > cloneArrayState() override
clone self
TranslationRotationScaleArrayState is an ArrayState subclass for mapping vertex array data for instan...
Definition ArrayState.h:142
ref_ptr< ArrayState > cloneArrayState() override
clone self
Definition VertexDraw.h:25
Definition VertexIndexDraw.h:25
Definition ArrayState.h:46