DNA Calib 1.1
Project brief
Public Member Functions | Protected Attributes | List of all members
dna::ReaderImpl< TReaderBase > Class Template Reference

#include <ReaderImpl.h>

Inheritance diagram for dna::ReaderImpl< TReaderBase >:
Inheritance graph
Collaboration diagram for dna::ReaderImpl< TReaderBase >:
Collaboration graph

Public Member Functions

 ReaderImpl (MemoryResource *memRes_)
 
StringView getName () const override
 
Archetype getArchetype () const override
 
Gender getGender () const override
 
std::uint16_t getAge () const override
 
std::uint32_t getMetaDataCount () const override
 
StringView getMetaDataKey (std::uint32_t index) const override
 
StringView getMetaDataValue (const char *key) const override
 
TranslationUnit getTranslationUnit () const override
 
RotationUnit getRotationUnit () const override
 
CoordinateSystem getCoordinateSystem () const override
 
std::uint16_t getLODCount () const override
 
std::uint16_t getDBMaxLOD () const override
 
StringView getDBComplexity () const override
 
StringView getDBName () const override
 
std::uint16_t getGUIControlCount () const override
 
StringView getGUIControlName (std::uint16_t index) const override
 
std::uint16_t getRawControlCount () const override
 
StringView getRawControlName (std::uint16_t index) const override
 
std::uint16_t getJointCount () const override
 
StringView getJointName (std::uint16_t index) const override
 
std::uint16_t getJointIndexListCount () const override
 
ConstArrayView< std::uint16_t > getJointIndicesForLOD (std::uint16_t lod) const override
 
std::uint16_t getJointParentIndex (std::uint16_t index) const override
 
std::uint16_t getBlendShapeChannelCount () const override
 
StringView getBlendShapeChannelName (std::uint16_t index) const override
 
std::uint16_t getBlendShapeChannelIndexListCount () const override
 
ConstArrayView< std::uint16_t > getBlendShapeChannelIndicesForLOD (std::uint16_t lod) const override
 
std::uint16_t getAnimatedMapCount () const override
 
StringView getAnimatedMapName (std::uint16_t index) const override
 
std::uint16_t getAnimatedMapIndexListCount () const override
 
ConstArrayView< std::uint16_t > getAnimatedMapIndicesForLOD (std::uint16_t lod) const override
 
std::uint16_t getMeshCount () const override
 
StringView getMeshName (std::uint16_t index) const override
 
std::uint16_t getMeshIndexListCount () const override
 
ConstArrayView< std::uint16_t > getMeshIndicesForLOD (std::uint16_t lod) const override
 
std::uint16_t getMeshBlendShapeChannelMappingCount () const override
 
MeshBlendShapeChannelMapping getMeshBlendShapeChannelMapping (std::uint16_t index) const override
 
ConstArrayView< std::uint16_t > getMeshBlendShapeChannelMappingIndicesForLOD (std::uint16_t lod) const override
 
Vector3 getNeutralJointTranslation (std::uint16_t index) const override
 
ConstArrayView< float > getNeutralJointTranslationXs () const override
 
ConstArrayView< float > getNeutralJointTranslationYs () const override
 
ConstArrayView< float > getNeutralJointTranslationZs () const override
 
Vector3 getNeutralJointRotation (std::uint16_t index) const override
 
ConstArrayView< float > getNeutralJointRotationXs () const override
 
ConstArrayView< float > getNeutralJointRotationYs () const override
 
ConstArrayView< float > getNeutralJointRotationZs () const override
 
ConstArrayView< std::uint16_t > getGUIToRawInputIndices () const override
 
ConstArrayView< std::uint16_t > getGUIToRawOutputIndices () const override
 
ConstArrayView< float > getGUIToRawFromValues () const override
 
ConstArrayView< float > getGUIToRawToValues () const override
 
ConstArrayView< float > getGUIToRawSlopeValues () const override
 
ConstArrayView< float > getGUIToRawCutValues () const override
 
std::uint16_t getPSDCount () const override
 
ConstArrayView< std::uint16_t > getPSDRowIndices () const override
 
ConstArrayView< std::uint16_t > getPSDColumnIndices () const override
 
ConstArrayView< float > getPSDValues () const override
 
std::uint16_t getJointRowCount () const override
 
std::uint16_t getJointColumnCount () const override
 
ConstArrayView< std::uint16_t > getJointVariableAttributeIndices (std::uint16_t lod) const override
 
std::uint16_t getJointGroupCount () const override
 
ConstArrayView< std::uint16_t > getJointGroupLODs (std::uint16_t jointGroupIndex) const override
 
ConstArrayView< std::uint16_t > getJointGroupInputIndices (std::uint16_t jointGroupIndex) const override
 
ConstArrayView< std::uint16_t > getJointGroupOutputIndices (std::uint16_t jointGroupIndex) const override
 
ConstArrayView< float > getJointGroupValues (std::uint16_t jointGroupIndex) const override
 
ConstArrayView< std::uint16_t > getJointGroupJointIndices (std::uint16_t jointGroupIndex) const override
 
ConstArrayView< std::uint16_t > getBlendShapeChannelLODs () const override
 
ConstArrayView< std::uint16_t > getBlendShapeChannelOutputIndices () const override
 
ConstArrayView< std::uint16_t > getBlendShapeChannelInputIndices () const override
 
ConstArrayView< std::uint16_t > getAnimatedMapLODs () const override
 
ConstArrayView< std::uint16_t > getAnimatedMapInputIndices () const override
 
ConstArrayView< std::uint16_t > getAnimatedMapOutputIndices () const override
 
ConstArrayView< float > getAnimatedMapFromValues () const override
 
ConstArrayView< float > getAnimatedMapToValues () const override
 
ConstArrayView< float > getAnimatedMapSlopeValues () const override
 
ConstArrayView< float > getAnimatedMapCutValues () const override
 
std::uint32_t getVertexPositionCount (std::uint16_t meshIndex) const override
 
Position getVertexPosition (std::uint16_t meshIndex, std::uint32_t vertexIndex) const override
 
ConstArrayView< float > getVertexPositionXs (std::uint16_t meshIndex) const override
 
ConstArrayView< float > getVertexPositionYs (std::uint16_t meshIndex) const override
 
ConstArrayView< float > getVertexPositionZs (std::uint16_t meshIndex) const override
 
std::uint32_t getVertexTextureCoordinateCount (std::uint16_t meshIndex) const override
 
TextureCoordinate getVertexTextureCoordinate (std::uint16_t meshIndex, std::uint32_t textureCoordinateIndex) const override
 
ConstArrayView< float > getVertexTextureCoordinateUs (std::uint16_t meshIndex) const override
 
ConstArrayView< float > getVertexTextureCoordinateVs (std::uint16_t meshIndex) const override
 
std::uint32_t getVertexNormalCount (std::uint16_t meshIndex) const override
 
Normal getVertexNormal (std::uint16_t meshIndex, std::uint32_t normalIndex) const override
 
ConstArrayView< float > getVertexNormalXs (std::uint16_t meshIndex) const override
 
ConstArrayView< float > getVertexNormalYs (std::uint16_t meshIndex) const override
 
ConstArrayView< float > getVertexNormalZs (std::uint16_t meshIndex) const override
 
std::uint32_t getFaceCount (std::uint16_t meshIndex) const override
 
ConstArrayView< std::uint32_t > getFaceVertexLayoutIndices (std::uint16_t meshIndex, std::uint32_t faceIndex) const override
 
std::uint32_t getVertexLayoutCount (std::uint16_t meshIndex) const override
 
VertexLayout getVertexLayout (std::uint16_t meshIndex, std::uint32_t layoutIndex) const override
 
ConstArrayView< std::uint32_t > getVertexLayoutPositionIndices (std::uint16_t meshIndex) const override
 
ConstArrayView< std::uint32_t > getVertexLayoutTextureCoordinateIndices (std::uint16_t meshIndex) const override
 
ConstArrayView< std::uint32_t > getVertexLayoutNormalIndices (std::uint16_t meshIndex) const override
 
std::uint16_t getMaximumInfluencePerVertex (std::uint16_t meshIndex) const override
 
std::uint32_t getSkinWeightsCount (std::uint16_t meshIndex) const override
 
ConstArrayView< float > getSkinWeightsValues (std::uint16_t meshIndex, std::uint32_t vertexIndex) const override
 
ConstArrayView< std::uint16_t > getSkinWeightsJointIndices (std::uint16_t meshIndex, std::uint32_t vertexIndex) const override
 
std::uint16_t getBlendShapeTargetCount (std::uint16_t meshIndex) const override
 
std::uint16_t getBlendShapeChannelIndex (std::uint16_t meshIndex, std::uint16_t blendShapeTargetIndex) const override
 
std::uint32_t getBlendShapeTargetDeltaCount (std::uint16_t meshIndex, std::uint16_t blendShapeTargetIndex) const override
 
Delta getBlendShapeTargetDelta (std::uint16_t meshIndex, std::uint16_t blendShapeTargetIndex, std::uint32_t deltaIndex) const override
 
ConstArrayView< float > getBlendShapeTargetDeltaXs (std::uint16_t meshIndex, std::uint16_t blendShapeTargetIndex) const override
 
ConstArrayView< float > getBlendShapeTargetDeltaYs (std::uint16_t meshIndex, std::uint16_t blendShapeTargetIndex) const override
 
ConstArrayView< float > getBlendShapeTargetDeltaZs (std::uint16_t meshIndex, std::uint16_t blendShapeTargetIndex) const override
 
ConstArrayView< std::uint32_t > getBlendShapeTargetVertexIndices (std::uint16_t meshIndex, std::uint16_t blendShapeTargetIndex) const override
 
- Public Member Functions inherited from dna::BaseImpl
MemoryResourcegetMemoryResource ()
 

Protected Attributes

DenormalizedData< TReaderBase > cache
 
- Protected Attributes inherited from dna::BaseImpl
MemoryResourcememRes
 
DNA dna
 

Additional Inherited Members

- Protected Member Functions inherited from dna::BaseImpl
 BaseImpl (MemoryResource *memRes_)
 
 ~BaseImpl ()=default
 
 BaseImpl (const BaseImpl &)=delete
 
BaseImploperator= (const BaseImpl &)=delete
 
 BaseImpl (BaseImpl &&rhs)=delete
 
BaseImploperator= (BaseImpl &&)=delete
 

Constructor & Destructor Documentation

◆ ReaderImpl()

template<class TReaderBase >
dna::ReaderImpl< TReaderBase >::ReaderImpl ( MemoryResource memRes_)
inlineexplicit
161 : BaseImpl{memRes_}, cache{memRes_} {
162}
BaseImpl(MemoryResource *memRes_)
Definition: dna/BaseImpl.h:12
DenormalizedData< TReaderBase > cache
Definition: dna/ReaderImpl.h:151

Member Function Documentation

◆ getAge()

template<class TReaderBase >
std::uint16_t dna::ReaderImpl< TReaderBase >::getAge
inlineoverride
188 {
189 return dna.descriptor.age;
190}
Definition: BinaryStreamReader.h:10

◆ getAnimatedMapCount()

template<class TReaderBase >
std::uint16_t dna::ReaderImpl< TReaderBase >::getAnimatedMapCount
inlineoverride
341 {
342 return static_cast<std::uint16_t>(dna.definition.animatedMapNames.size());
343}

◆ getAnimatedMapCutValues()

template<class TReaderBase >
ConstArrayView< float > dna::ReaderImpl< TReaderBase >::getAnimatedMapCutValues
inlineoverride
644 {
645 const auto& cutValues = dna.behavior.animatedMaps.conditionals.cutValues;
646 return {cutValues.data(), cutValues.size()};
647}

◆ getAnimatedMapFromValues()

template<class TReaderBase >
ConstArrayView< float > dna::ReaderImpl< TReaderBase >::getAnimatedMapFromValues
inlineoverride
626 {
627 const auto& fromValues = dna.behavior.animatedMaps.conditionals.fromValues;
628 return {fromValues.data(), fromValues.size()};
629}

◆ getAnimatedMapIndexListCount()

template<class TReaderBase >
std::uint16_t dna::ReaderImpl< TReaderBase >::getAnimatedMapIndexListCount
inlineoverride
355 {
356 return dna.definition.lodAnimatedMapMapping.getIndexListCount();
357}

◆ getAnimatedMapIndicesForLOD()

template<class TReaderBase >
ConstArrayView< std::uint16_t > dna::ReaderImpl< TReaderBase >::getAnimatedMapIndicesForLOD ( std::uint16_t  lod) const
inlineoverride
360 {
361 return dna.definition.lodAnimatedMapMapping.getIndices(lod);
362}

◆ getAnimatedMapInputIndices()

template<class TReaderBase >
ConstArrayView< std::uint16_t > dna::ReaderImpl< TReaderBase >::getAnimatedMapInputIndices
inlineoverride
614 {
615 const auto& inputIndices = dna.behavior.animatedMaps.conditionals.inputIndices;
616 return {inputIndices.data(), inputIndices.size()};
617}

◆ getAnimatedMapLODs()

template<class TReaderBase >
ConstArrayView< std::uint16_t > dna::ReaderImpl< TReaderBase >::getAnimatedMapLODs
inlineoverride
608 {
609 const auto& lods = dna.behavior.animatedMaps.lods;
610 return {lods.data(), lods.size()};
611}

◆ getAnimatedMapName()

template<class TReaderBase >
StringView dna::ReaderImpl< TReaderBase >::getAnimatedMapName ( std::uint16_t  index) const
inlineoverride
346 {
347 if (index < dna.definition.animatedMapNames.size()) {
348 const auto& animatedMapName = dna.definition.animatedMapNames[index];
349 return {animatedMapName.data(), animatedMapName.size()};
350 }
351 return {};
352}

◆ getAnimatedMapOutputIndices()

template<class TReaderBase >
ConstArrayView< std::uint16_t > dna::ReaderImpl< TReaderBase >::getAnimatedMapOutputIndices
inlineoverride
620 {
621 const auto& outputIndices = dna.behavior.animatedMaps.conditionals.outputIndices;
622 return {outputIndices.data(), outputIndices.size()};
623}

◆ getAnimatedMapSlopeValues()

template<class TReaderBase >
ConstArrayView< float > dna::ReaderImpl< TReaderBase >::getAnimatedMapSlopeValues
inlineoverride
638 {
639 const auto& slopeValues = dna.behavior.animatedMaps.conditionals.slopeValues;
640 return {slopeValues.data(), slopeValues.size()};
641}

◆ getAnimatedMapToValues()

template<class TReaderBase >
ConstArrayView< float > dna::ReaderImpl< TReaderBase >::getAnimatedMapToValues
inlineoverride
632 {
633 const auto& toValues = dna.behavior.animatedMaps.conditionals.toValues;
634 return {toValues.data(), toValues.size()};
635}

◆ getArchetype()

template<class TReaderBase >
Archetype dna::ReaderImpl< TReaderBase >::getArchetype
inlineoverride
178 {
179 return static_cast<Archetype>(dna.descriptor.archetype);
180}
Archetype
Definition: Descriptor.h:7

◆ getBlendShapeChannelCount()

template<class TReaderBase >
std::uint16_t dna::ReaderImpl< TReaderBase >::getBlendShapeChannelCount
inlineoverride
317 {
318 return static_cast<std::uint16_t>(dna.definition.blendShapeChannelNames.size());
319}

◆ getBlendShapeChannelIndex()

template<class TReaderBase >
std::uint16_t dna::ReaderImpl< TReaderBase >::getBlendShapeChannelIndex ( std::uint16_t  meshIndex,
std::uint16_t  blendShapeTargetIndex 
) const
inlineoverride
888 {
889 const auto& meshes = dna.geometry.meshes;
890 if ((meshIndex < meshes.size()) && (blendShapeTargetIndex < meshes[meshIndex].blendShapeTargets.size())) {
891 return meshes[meshIndex].blendShapeTargets[blendShapeTargetIndex].blendShapeChannelIndex;
892 }
893 return {};
894}

◆ getBlendShapeChannelIndexListCount()

template<class TReaderBase >
std::uint16_t dna::ReaderImpl< TReaderBase >::getBlendShapeChannelIndexListCount
inlineoverride
331 {
332 return dna.definition.lodBlendShapeMapping.getIndexListCount();
333}

◆ getBlendShapeChannelIndicesForLOD()

template<class TReaderBase >
ConstArrayView< std::uint16_t > dna::ReaderImpl< TReaderBase >::getBlendShapeChannelIndicesForLOD ( std::uint16_t  lod) const
inlineoverride
336 {
337 return dna.definition.lodBlendShapeMapping.getIndices(lod);
338}

◆ getBlendShapeChannelInputIndices()

template<class TReaderBase >
ConstArrayView< std::uint16_t > dna::ReaderImpl< TReaderBase >::getBlendShapeChannelInputIndices
inlineoverride
596 {
597 const auto& inputIndices = dna.behavior.blendShapeChannels.inputIndices;
598 return {inputIndices.data(), inputIndices.size()};
599}

◆ getBlendShapeChannelLODs()

template<class TReaderBase >
ConstArrayView< std::uint16_t > dna::ReaderImpl< TReaderBase >::getBlendShapeChannelLODs
inlineoverride
590 {
591 const auto& lods = dna.behavior.blendShapeChannels.lods;
592 return {lods.data(), lods.size()};
593}

◆ getBlendShapeChannelName()

template<class TReaderBase >
StringView dna::ReaderImpl< TReaderBase >::getBlendShapeChannelName ( std::uint16_t  index) const
inlineoverride
322 {
323 if (index < dna.definition.blendShapeChannelNames.size()) {
324 const auto& blendShapeName = dna.definition.blendShapeChannelNames[index];
325 return {blendShapeName.data(), blendShapeName.size()};
326 }
327 return {};
328}

◆ getBlendShapeChannelOutputIndices()

template<class TReaderBase >
ConstArrayView< std::uint16_t > dna::ReaderImpl< TReaderBase >::getBlendShapeChannelOutputIndices
inlineoverride
602 {
603 const auto& outputIndices = dna.behavior.blendShapeChannels.outputIndices;
604 return {outputIndices.data(), outputIndices.size()};
605}

◆ getBlendShapeTargetCount()

template<class TReaderBase >
std::uint16_t dna::ReaderImpl< TReaderBase >::getBlendShapeTargetCount ( std::uint16_t  meshIndex) const
inlineoverride
879 {
880 if (meshIndex < dna.geometry.meshes.size()) {
881 return static_cast<std::uint16_t>(dna.geometry.meshes[meshIndex].blendShapeTargets.size());
882 }
883 return {};
884}

◆ getBlendShapeTargetDelta()

template<class TReaderBase >
Delta dna::ReaderImpl< TReaderBase >::getBlendShapeTargetDelta ( std::uint16_t  meshIndex,
std::uint16_t  blendShapeTargetIndex,
std::uint32_t  deltaIndex 
) const
inlineoverride
909 {
910 const auto& meshes = dna.geometry.meshes;
911 if ((meshIndex < meshes.size()) && (blendShapeTargetIndex < meshes[meshIndex].blendShapeTargets.size()) &&
912 (deltaIndex < meshes[meshIndex].blendShapeTargets[blendShapeTargetIndex].deltas.size())) {
913 const auto& deltas = meshes[meshIndex].blendShapeTargets[blendShapeTargetIndex].deltas;
914 return {deltas.xs[deltaIndex], deltas.ys[deltaIndex], deltas.zs[deltaIndex]};
915 }
916 return {};
917}

◆ getBlendShapeTargetDeltaCount()

template<class TReaderBase >
std::uint32_t dna::ReaderImpl< TReaderBase >::getBlendShapeTargetDeltaCount ( std::uint16_t  meshIndex,
std::uint16_t  blendShapeTargetIndex 
) const
inlineoverride
898 {
899 const auto& meshes = dna.geometry.meshes;
900 if ((meshIndex < meshes.size()) && (blendShapeTargetIndex < meshes[meshIndex].blendShapeTargets.size())) {
901 return static_cast<std::uint32_t>(meshes[meshIndex].blendShapeTargets[blendShapeTargetIndex].deltas.xs.size());
902 }
903 return {};
904}

◆ getBlendShapeTargetDeltaXs()

template<class TReaderBase >
ConstArrayView< float > dna::ReaderImpl< TReaderBase >::getBlendShapeTargetDeltaXs ( std::uint16_t  meshIndex,
std::uint16_t  blendShapeTargetIndex 
) const
inlineoverride
921 {
922 const auto& meshes = dna.geometry.meshes;
923 if ((meshIndex < meshes.size()) && (blendShapeTargetIndex < meshes[meshIndex].blendShapeTargets.size())) {
924 const auto& xDeltas = meshes[meshIndex].blendShapeTargets[blendShapeTargetIndex].deltas.xs;
925 return {xDeltas.data(), xDeltas.size()};
926 }
927 return {};
928}

◆ getBlendShapeTargetDeltaYs()

template<class TReaderBase >
ConstArrayView< float > dna::ReaderImpl< TReaderBase >::getBlendShapeTargetDeltaYs ( std::uint16_t  meshIndex,
std::uint16_t  blendShapeTargetIndex 
) const
inlineoverride
932 {
933 const auto& meshes = dna.geometry.meshes;
934 if ((meshIndex < meshes.size()) && (blendShapeTargetIndex < meshes[meshIndex].blendShapeTargets.size())) {
935 const auto& yDeltas = meshes[meshIndex].blendShapeTargets[blendShapeTargetIndex].deltas.ys;
936 return {yDeltas.data(), yDeltas.size()};
937 }
938 return {};
939}

◆ getBlendShapeTargetDeltaZs()

template<class TReaderBase >
ConstArrayView< float > dna::ReaderImpl< TReaderBase >::getBlendShapeTargetDeltaZs ( std::uint16_t  meshIndex,
std::uint16_t  blendShapeTargetIndex 
) const
inlineoverride
943 {
944 const auto& meshes = dna.geometry.meshes;
945 if ((meshIndex < meshes.size()) && (blendShapeTargetIndex < meshes[meshIndex].blendShapeTargets.size())) {
946 const auto& zDeltas = meshes[meshIndex].blendShapeTargets[blendShapeTargetIndex].deltas.zs;
947 return {zDeltas.data(), zDeltas.size()};
948 }
949 return {};
950}

◆ getBlendShapeTargetVertexIndices()

template<class TReaderBase >
ConstArrayView< std::uint32_t > dna::ReaderImpl< TReaderBase >::getBlendShapeTargetVertexIndices ( std::uint16_t  meshIndex,
std::uint16_t  blendShapeTargetIndex 
) const
inlineoverride
955 {
956 const auto& meshes = dna.geometry.meshes;
957 if ((meshIndex < meshes.size()) && (blendShapeTargetIndex < meshes[meshIndex].blendShapeTargets.size())) {
958 const auto& vertexIndices = meshes[meshIndex].blendShapeTargets[blendShapeTargetIndex].vertexIndices;
959 return {vertexIndices.data(), vertexIndices.size()};
960 }
961 return {};
962}

◆ getCoordinateSystem()

template<class TReaderBase >
CoordinateSystem dna::ReaderImpl< TReaderBase >::getCoordinateSystem
inlineoverride
228 {
229 return {
230 static_cast<Direction>(dna.descriptor.coordinateSystem.xAxis),
231 static_cast<Direction>(dna.descriptor.coordinateSystem.yAxis),
232 static_cast<Direction>(dna.descriptor.coordinateSystem.zAxis)
233 };
234}
Direction
Definition: Descriptor.h:32

◆ getDBComplexity()

template<class TReaderBase >
StringView dna::ReaderImpl< TReaderBase >::getDBComplexity
inlineoverride
247 {
248 return {dna.descriptor.complexity.data(), dna.descriptor.complexity.size()};
249}

◆ getDBMaxLOD()

template<class TReaderBase >
std::uint16_t dna::ReaderImpl< TReaderBase >::getDBMaxLOD
inlineoverride
242 {
243 return dna.descriptor.maxLOD;
244}

◆ getDBName()

template<class TReaderBase >
StringView dna::ReaderImpl< TReaderBase >::getDBName
inlineoverride
252 {
253 return {dna.descriptor.dbName.data(), dna.descriptor.dbName.size()};
254}

◆ getFaceCount()

template<class TReaderBase >
std::uint32_t dna::ReaderImpl< TReaderBase >::getFaceCount ( std::uint16_t  meshIndex) const
inlineoverride
774 {
775 if (meshIndex < dna.geometry.meshes.size()) {
776 return static_cast<std::uint32_t>(dna.geometry.meshes[meshIndex].faces.size());
777 }
778 return 0u;
779}

◆ getFaceVertexLayoutIndices()

template<class TReaderBase >
ConstArrayView< std::uint32_t > dna::ReaderImpl< TReaderBase >::getFaceVertexLayoutIndices ( std::uint16_t  meshIndex,
std::uint32_t  faceIndex 
) const
inlineoverride
783 {
784 const auto& meshes = dna.geometry.meshes;
785 if ((meshIndex < meshes.size()) && (faceIndex < meshes[meshIndex].faces.size())) {
786 const auto& layoutIndices = meshes[meshIndex].faces[faceIndex].layoutIndices;
787 return {layoutIndices.data(), layoutIndices.size()};
788 }
789 return {};
790}

◆ getGender()

template<class TReaderBase >
Gender dna::ReaderImpl< TReaderBase >::getGender
inlineoverride
183 {
184 return static_cast<Gender>(dna.descriptor.gender);
185}
Gender
Definition: Descriptor.h:16

◆ getGUIControlCount()

template<class TReaderBase >
std::uint16_t dna::ReaderImpl< TReaderBase >::getGUIControlCount
inlineoverride
257 {
258 return static_cast<std::uint16_t>(dna.definition.guiControlNames.size());
259}

◆ getGUIControlName()

template<class TReaderBase >
StringView dna::ReaderImpl< TReaderBase >::getGUIControlName ( std::uint16_t  index) const
inlineoverride
262 {
263 if (index < dna.definition.guiControlNames.size()) {
264 const auto& guiControlName = dna.definition.guiControlNames[index];
265 return {guiControlName.data(), guiControlName.size()};
266 }
267 return {};
268}

◆ getGUIToRawCutValues()

template<class TReaderBase >
ConstArrayView< float > dna::ReaderImpl< TReaderBase >::getGUIToRawCutValues
inlineoverride
493 {
494 const auto& cutValues = dna.behavior.controls.conditionals.cutValues;
495 return {cutValues.data(), cutValues.size()};
496}

◆ getGUIToRawFromValues()

template<class TReaderBase >
ConstArrayView< float > dna::ReaderImpl< TReaderBase >::getGUIToRawFromValues
inlineoverride
475 {
476 const auto& fromValues = dna.behavior.controls.conditionals.fromValues;
477 return {fromValues.data(), fromValues.size()};
478}

◆ getGUIToRawInputIndices()

template<class TReaderBase >
ConstArrayView< std::uint16_t > dna::ReaderImpl< TReaderBase >::getGUIToRawInputIndices
inlineoverride
463 {
464 const auto& inputIndices = dna.behavior.controls.conditionals.inputIndices;
465 return {inputIndices.data(), inputIndices.size()};
466}

◆ getGUIToRawOutputIndices()

template<class TReaderBase >
ConstArrayView< std::uint16_t > dna::ReaderImpl< TReaderBase >::getGUIToRawOutputIndices
inlineoverride
469 {
470 const auto& outputIndices = dna.behavior.controls.conditionals.outputIndices;
471 return {outputIndices.data(), outputIndices.size()};
472}

◆ getGUIToRawSlopeValues()

template<class TReaderBase >
ConstArrayView< float > dna::ReaderImpl< TReaderBase >::getGUIToRawSlopeValues
inlineoverride
487 {
488 const auto& slopeValues = dna.behavior.controls.conditionals.slopeValues;
489 return {slopeValues.data(), slopeValues.size()};
490}

◆ getGUIToRawToValues()

template<class TReaderBase >
ConstArrayView< float > dna::ReaderImpl< TReaderBase >::getGUIToRawToValues
inlineoverride
481 {
482 const auto& toValues = dna.behavior.controls.conditionals.toValues;
483 return {toValues.data(), toValues.size()};
484}

◆ getJointColumnCount()

template<class TReaderBase >
std::uint16_t dna::ReaderImpl< TReaderBase >::getJointColumnCount
inlineoverride
527 {
528 return dna.behavior.joints.colCount;
529}

◆ getJointCount()

template<class TReaderBase >
std::uint16_t dna::ReaderImpl< TReaderBase >::getJointCount
inlineoverride
285 {
286 return static_cast<std::uint16_t>(dna.definition.jointNames.size());
287}

◆ getJointGroupCount()

template<class TReaderBase >
std::uint16_t dna::ReaderImpl< TReaderBase >::getJointGroupCount
inlineoverride
540 {
541 return static_cast<std::uint16_t>(dna.behavior.joints.jointGroups.size());
542}

◆ getJointGroupInputIndices()

template<class TReaderBase >
ConstArrayView< std::uint16_t > dna::ReaderImpl< TReaderBase >::getJointGroupInputIndices ( std::uint16_t  jointGroupIndex) const
inlineoverride
554 {
555 if (jointGroupIndex < dna.behavior.joints.jointGroups.size()) {
556 const auto& inputIndices = dna.behavior.joints.jointGroups[jointGroupIndex].inputIndices;
557 return {inputIndices.data(), inputIndices.size()};
558 }
559 return {};
560}

◆ getJointGroupJointIndices()

template<class TReaderBase >
ConstArrayView< std::uint16_t > dna::ReaderImpl< TReaderBase >::getJointGroupJointIndices ( std::uint16_t  jointGroupIndex) const
inlineoverride
581 {
582 if (jointGroupIndex < dna.behavior.joints.jointGroups.size()) {
583 const auto& jointIndices = dna.behavior.joints.jointGroups[jointGroupIndex].jointIndices;
584 return {jointIndices.data(), jointIndices.size()};
585 }
586 return {};
587}

◆ getJointGroupLODs()

template<class TReaderBase >
ConstArrayView< std::uint16_t > dna::ReaderImpl< TReaderBase >::getJointGroupLODs ( std::uint16_t  jointGroupIndex) const
inlineoverride
545 {
546 if (jointGroupIndex < dna.behavior.joints.jointGroups.size()) {
547 const auto& lods = dna.behavior.joints.jointGroups[jointGroupIndex].lods;
548 return {lods.data(), lods.size()};
549 }
550 return {};
551}

◆ getJointGroupOutputIndices()

template<class TReaderBase >
ConstArrayView< std::uint16_t > dna::ReaderImpl< TReaderBase >::getJointGroupOutputIndices ( std::uint16_t  jointGroupIndex) const
inlineoverride
563 {
564 if (jointGroupIndex < dna.behavior.joints.jointGroups.size()) {
565 const auto& outputIndices = dna.behavior.joints.jointGroups[jointGroupIndex].outputIndices;
566 return {outputIndices.data(), outputIndices.size()};
567 }
568 return {};
569}

◆ getJointGroupValues()

template<class TReaderBase >
ConstArrayView< float > dna::ReaderImpl< TReaderBase >::getJointGroupValues ( std::uint16_t  jointGroupIndex) const
inlineoverride
572 {
573 if (jointGroupIndex < dna.behavior.joints.jointGroups.size()) {
574 const auto& values = dna.behavior.joints.jointGroups[jointGroupIndex].values;
575 return {values.data(), values.size()};
576 }
577 return {};
578}

◆ getJointIndexListCount()

template<class TReaderBase >
std::uint16_t dna::ReaderImpl< TReaderBase >::getJointIndexListCount
inlineoverride
299 {
300 return dna.definition.lodJointMapping.getIndexListCount();
301}

◆ getJointIndicesForLOD()

template<class TReaderBase >
ConstArrayView< std::uint16_t > dna::ReaderImpl< TReaderBase >::getJointIndicesForLOD ( std::uint16_t  lod) const
inlineoverride
304 {
305 return dna.definition.lodJointMapping.getIndices(lod);
306}

◆ getJointName()

template<class TReaderBase >
StringView dna::ReaderImpl< TReaderBase >::getJointName ( std::uint16_t  index) const
inlineoverride
290 {
291 if (index < dna.definition.jointNames.size()) {
292 const auto& jointName = dna.definition.jointNames[index];
293 return {jointName.data(), jointName.size()};
294 }
295 return {};
296}

◆ getJointParentIndex()

template<class TReaderBase >
std::uint16_t dna::ReaderImpl< TReaderBase >::getJointParentIndex ( std::uint16_t  index) const
inlineoverride
309 {
310 if (index < dna.definition.jointHierarchy.size()) {
311 return dna.definition.jointHierarchy[index];
312 }
313 return std::numeric_limits<std::uint16_t>::max();
314}

◆ getJointRowCount()

template<class TReaderBase >
std::uint16_t dna::ReaderImpl< TReaderBase >::getJointRowCount
inlineoverride
522 {
523 return dna.behavior.joints.rowCount;
524}

◆ getJointVariableAttributeIndices()

template<class TReaderBase >
ConstArrayView< std::uint16_t > dna::ReaderImpl< TReaderBase >::getJointVariableAttributeIndices ( std::uint16_t  lod) const
inlineoverride
532 {
533 if (cache.jointVariableAttributeIndices.getLODCount() == static_cast<std::uint16_t>(0)) {
534 cache.populate(this);
535 }
537}
ConstArrayView< std::uint16_t > getIndices(std::uint16_t lod) const
Definition: dna/LODMapping.cpp:70
std::uint16_t getLODCount() const
Definition: dna/LODMapping.cpp:28
LODMapping jointVariableAttributeIndices
Definition: dna/DenormalizedData.h:16
void populate(const Reader *source)
Definition: dna/DenormalizedData.h:24

◆ getLODCount()

template<class TReaderBase >
std::uint16_t dna::ReaderImpl< TReaderBase >::getLODCount
inlineoverride
237 {
238 return dna.descriptor.lodCount;
239}

◆ getMaximumInfluencePerVertex()

template<class TReaderBase >
std::uint16_t dna::ReaderImpl< TReaderBase >::getMaximumInfluencePerVertex ( std::uint16_t  meshIndex) const
inlineoverride
840 {
841 if (meshIndex < dna.geometry.meshes.size()) {
842 return dna.geometry.meshes[meshIndex].maximumInfluencePerVertex;
843 }
844 return {};
845}

◆ getMeshBlendShapeChannelMapping()

template<class TReaderBase >
MeshBlendShapeChannelMapping dna::ReaderImpl< TReaderBase >::getMeshBlendShapeChannelMapping ( std::uint16_t  index) const
inlineoverride
394 {
395 const auto mapping = dna.definition.meshBlendShapeChannelMapping.get(index);
396 return {mapping.from, mapping.to};
397}

◆ getMeshBlendShapeChannelMappingCount()

template<class TReaderBase >
std::uint16_t dna::ReaderImpl< TReaderBase >::getMeshBlendShapeChannelMappingCount
inlineoverride
389 {
390 return static_cast<std::uint16_t>(dna.definition.meshBlendShapeChannelMapping.size());
391}

◆ getMeshBlendShapeChannelMappingIndicesForLOD()

template<class TReaderBase >
ConstArrayView< std::uint16_t > dna::ReaderImpl< TReaderBase >::getMeshBlendShapeChannelMappingIndicesForLOD ( std::uint16_t  lod) const
inlineoverride
401 {
402 if (cache.meshBlendShapeMappingIndices.getLODCount() == static_cast<std::uint16_t>(0)) {
403 cache.populate(this);
404 }
406}
LODMapping meshBlendShapeMappingIndices
Definition: dna/DenormalizedData.h:17

◆ getMeshCount()

template<class TReaderBase >
std::uint16_t dna::ReaderImpl< TReaderBase >::getMeshCount
inlineoverride
365 {
366 return static_cast<std::uint16_t>(dna.definition.meshNames.size());
367}

◆ getMeshIndexListCount()

template<class TReaderBase >
std::uint16_t dna::ReaderImpl< TReaderBase >::getMeshIndexListCount
inlineoverride
379 {
380 return dna.definition.lodMeshMapping.getIndexListCount();
381}

◆ getMeshIndicesForLOD()

template<class TReaderBase >
ConstArrayView< std::uint16_t > dna::ReaderImpl< TReaderBase >::getMeshIndicesForLOD ( std::uint16_t  lod) const
inlineoverride
384 {
385 return dna.definition.lodMeshMapping.getIndices(lod);
386}

◆ getMeshName()

template<class TReaderBase >
StringView dna::ReaderImpl< TReaderBase >::getMeshName ( std::uint16_t  index) const
inlineoverride
370 {
371 if (index < dna.definition.meshNames.size()) {
372 const auto& meshName = dna.definition.meshNames[index];
373 return {meshName.data(), meshName.size()};
374 }
375 return {};
376}

◆ getMetaDataCount()

template<class TReaderBase >
std::uint32_t dna::ReaderImpl< TReaderBase >::getMetaDataCount
inlineoverride
193 {
194 return static_cast<std::uint32_t>(dna.descriptor.metadata.size());
195}

◆ getMetaDataKey()

template<class TReaderBase >
StringView dna::ReaderImpl< TReaderBase >::getMetaDataKey ( std::uint32_t  index) const
inlineoverride
198 {
199 if (index < dna.descriptor.metadata.size()) {
200 const auto& key = std::get<0>(dna.descriptor.metadata[index]);
201 return {key.data(), key.size()};
202 }
203 return {};
204}

◆ getMetaDataValue()

template<class TReaderBase >
StringView dna::ReaderImpl< TReaderBase >::getMetaDataValue ( const char *  key) const
inlineoverride
207 {
208 for (const auto& data: dna.descriptor.metadata) {
209 if (std::get<0>(data) == key) {
210 const auto& value = std::get<1>(data);
211 return {value.data(), value.size()};
212 }
213 }
214 return {};
215}

◆ getName()

template<class TReaderBase >
StringView dna::ReaderImpl< TReaderBase >::getName
inlineoverride
173 {
174 return {dna.descriptor.name.data(), dna.descriptor.name.size()};
175}

◆ getNeutralJointRotation()

template<class TReaderBase >
Vector3 dna::ReaderImpl< TReaderBase >::getNeutralJointRotation ( std::uint16_t  index) const
inlineoverride
436 {
437 const auto& rotations = dna.definition.neutralJointRotations;
438 if (index < rotations.size()) {
439 return {rotations.xs[index], rotations.ys[index], rotations.zs[index]};
440 }
441 return {};
442}

◆ getNeutralJointRotationXs()

template<class TReaderBase >
ConstArrayView< float > dna::ReaderImpl< TReaderBase >::getNeutralJointRotationXs
inlineoverride
445 {
446 const auto& xs = dna.definition.neutralJointRotations.xs;
447 return {xs.data(), xs.size()};
448}

◆ getNeutralJointRotationYs()

template<class TReaderBase >
ConstArrayView< float > dna::ReaderImpl< TReaderBase >::getNeutralJointRotationYs
inlineoverride
451 {
452 const auto& ys = dna.definition.neutralJointRotations.ys;
453 return {ys.data(), ys.size()};
454}

◆ getNeutralJointRotationZs()

template<class TReaderBase >
ConstArrayView< float > dna::ReaderImpl< TReaderBase >::getNeutralJointRotationZs
inlineoverride
457 {
458 const auto& zs = dna.definition.neutralJointRotations.zs;
459 return {zs.data(), zs.size()};
460}

◆ getNeutralJointTranslation()

template<class TReaderBase >
Vector3 dna::ReaderImpl< TReaderBase >::getNeutralJointTranslation ( std::uint16_t  index) const
inlineoverride
409 {
410 const auto& translations = dna.definition.neutralJointTranslations;
411 if (index < translations.xs.size()) {
412 return {translations.xs[index], translations.ys[index], translations.zs[index]};
413 }
414 return {};
415}

◆ getNeutralJointTranslationXs()

template<class TReaderBase >
ConstArrayView< float > dna::ReaderImpl< TReaderBase >::getNeutralJointTranslationXs
inlineoverride
418 {
419 const auto& xs = dna.definition.neutralJointTranslations.xs;
420 return {xs.data(), xs.size()};
421}

◆ getNeutralJointTranslationYs()

template<class TReaderBase >
ConstArrayView< float > dna::ReaderImpl< TReaderBase >::getNeutralJointTranslationYs
inlineoverride
424 {
425 const auto& ys = dna.definition.neutralJointTranslations.ys;
426 return {ys.data(), ys.size()};
427}

◆ getNeutralJointTranslationZs()

template<class TReaderBase >
ConstArrayView< float > dna::ReaderImpl< TReaderBase >::getNeutralJointTranslationZs
inlineoverride
430 {
431 const auto& zs = dna.definition.neutralJointTranslations.zs;
432 return {zs.data(), zs.size()};
433}

◆ getPSDColumnIndices()

template<class TReaderBase >
ConstArrayView< std::uint16_t > dna::ReaderImpl< TReaderBase >::getPSDColumnIndices
inlineoverride
510 {
511 const auto& columns = dna.behavior.controls.psds.columns;
512 return {columns.data(), columns.size()};
513}

◆ getPSDCount()

template<class TReaderBase >
std::uint16_t dna::ReaderImpl< TReaderBase >::getPSDCount
inlineoverride
499 {
500 return dna.behavior.controls.psdCount;
501}

◆ getPSDRowIndices()

template<class TReaderBase >
ConstArrayView< std::uint16_t > dna::ReaderImpl< TReaderBase >::getPSDRowIndices
inlineoverride
504 {
505 const auto& rows = dna.behavior.controls.psds.rows;
506 return {rows.data(), rows.size()};
507}

◆ getPSDValues()

template<class TReaderBase >
ConstArrayView< float > dna::ReaderImpl< TReaderBase >::getPSDValues
inlineoverride
516 {
517 const auto& values = dna.behavior.controls.psds.values;
518 return {values.data(), values.size()};
519}

◆ getRawControlCount()

template<class TReaderBase >
std::uint16_t dna::ReaderImpl< TReaderBase >::getRawControlCount
inlineoverride
271 {
272 return static_cast<std::uint16_t>(dna.definition.rawControlNames.size());
273}

◆ getRawControlName()

template<class TReaderBase >
StringView dna::ReaderImpl< TReaderBase >::getRawControlName ( std::uint16_t  index) const
inlineoverride
276 {
277 if (index < dna.definition.rawControlNames.size()) {
278 const auto& rawControlName = dna.definition.rawControlNames[index];
279 return {rawControlName.data(), rawControlName.size()};
280 }
281 return {};
282}

◆ getRotationUnit()

template<class TReaderBase >
RotationUnit dna::ReaderImpl< TReaderBase >::getRotationUnit
inlineoverride
223 {
224 return static_cast<RotationUnit>(dna.descriptor.rotationUnit);
225}
RotationUnit
Definition: Descriptor.h:27

◆ getSkinWeightsCount()

template<class TReaderBase >
std::uint32_t dna::ReaderImpl< TReaderBase >::getSkinWeightsCount ( std::uint16_t  meshIndex) const
inlineoverride
848 {
849 const auto& meshes = dna.geometry.meshes;
850 if (meshIndex < meshes.size()) {
851 return static_cast<std::uint32_t>(meshes[meshIndex].skinWeights.size());
852 }
853 return {};
854}

◆ getSkinWeightsJointIndices()

template<class TReaderBase >
ConstArrayView< std::uint16_t > dna::ReaderImpl< TReaderBase >::getSkinWeightsJointIndices ( std::uint16_t  meshIndex,
std::uint32_t  vertexIndex 
) const
inlineoverride
869 {
870 const auto& meshes = dna.geometry.meshes;
871 if ((meshIndex < meshes.size()) && (vertexIndex < meshes[meshIndex].skinWeights.size())) {
872 const auto& jointIndices = meshes[meshIndex].skinWeights[vertexIndex].jointIndices;
873 return {jointIndices.data(), jointIndices.size()};
874 }
875 return {};
876}

◆ getSkinWeightsValues()

template<class TReaderBase >
ConstArrayView< float > dna::ReaderImpl< TReaderBase >::getSkinWeightsValues ( std::uint16_t  meshIndex,
std::uint32_t  vertexIndex 
) const
inlineoverride
858 {
859 const auto& meshes = dna.geometry.meshes;
860 if ((meshIndex < meshes.size()) && (vertexIndex < meshes[meshIndex].skinWeights.size())) {
861 const auto& weights = meshes[meshIndex].skinWeights[vertexIndex].weights;
862 return {weights.data(), weights.size()};
863 }
864 return {};
865}

◆ getTranslationUnit()

template<class TReaderBase >
TranslationUnit dna::ReaderImpl< TReaderBase >::getTranslationUnit
inlineoverride
218 {
219 return static_cast<TranslationUnit>(dna.descriptor.translationUnit);
220}
TranslationUnit
Definition: Descriptor.h:22

◆ getVertexLayout()

template<class TReaderBase >
VertexLayout dna::ReaderImpl< TReaderBase >::getVertexLayout ( std::uint16_t  meshIndex,
std::uint32_t  layoutIndex 
) const
inlineoverride
801 {
802 if (meshIndex < dna.geometry.meshes.size()) {
803 const auto& layouts = dna.geometry.meshes[meshIndex].layouts;
804 if (layoutIndex < layouts.size()) {
805 return {layouts.positions[layoutIndex], layouts.textureCoordinates[layoutIndex], layouts.normals[layoutIndex]};
806 }
807 }
808 return {};
809}

◆ getVertexLayoutCount()

template<class TReaderBase >
std::uint32_t dna::ReaderImpl< TReaderBase >::getVertexLayoutCount ( std::uint16_t  meshIndex) const
inlineoverride
793 {
794 if (meshIndex < dna.geometry.meshes.size()) {
795 return static_cast<std::uint32_t>(dna.geometry.meshes[meshIndex].layouts.positions.size());
796 }
797 return 0u;
798}

◆ getVertexLayoutNormalIndices()

template<class TReaderBase >
ConstArrayView< std::uint32_t > dna::ReaderImpl< TReaderBase >::getVertexLayoutNormalIndices ( std::uint16_t  meshIndex) const
inlineoverride
831 {
832 if (meshIndex < dna.geometry.meshes.size()) {
833 const auto& normals = dna.geometry.meshes[meshIndex].layouts.normals;
834 return {normals.data(), normals.size()};
835 }
836 return {};
837}

◆ getVertexLayoutPositionIndices()

template<class TReaderBase >
ConstArrayView< std::uint32_t > dna::ReaderImpl< TReaderBase >::getVertexLayoutPositionIndices ( std::uint16_t  meshIndex) const
inlineoverride
812 {
813 if (meshIndex < dna.geometry.meshes.size()) {
814 const auto& positions = dna.geometry.meshes[meshIndex].layouts.positions;
815 return {positions.data(), positions.size()};
816 }
817 return {};
818}

◆ getVertexLayoutTextureCoordinateIndices()

template<class TReaderBase >
ConstArrayView< std::uint32_t > dna::ReaderImpl< TReaderBase >::getVertexLayoutTextureCoordinateIndices ( std::uint16_t  meshIndex) const
inlineoverride
822 {
823 if (meshIndex < dna.geometry.meshes.size()) {
824 const auto& textureCoordinated = dna.geometry.meshes[meshIndex].layouts.textureCoordinates;
825 return {textureCoordinated.data(), textureCoordinated.size()};
826 }
827 return {};
828}

◆ getVertexNormal()

template<class TReaderBase >
Normal dna::ReaderImpl< TReaderBase >::getVertexNormal ( std::uint16_t  meshIndex,
std::uint32_t  normalIndex 
) const
inlineoverride
736 {
737 if (meshIndex < dna.geometry.meshes.size()) {
738 const auto& normals = dna.geometry.meshes[meshIndex].normals;
739 if (normalIndex < normals.size()) {
740 return {normals.xs[normalIndex], normals.ys[normalIndex], normals.zs[normalIndex]};
741 }
742 }
743 return {};
744}

◆ getVertexNormalCount()

template<class TReaderBase >
std::uint32_t dna::ReaderImpl< TReaderBase >::getVertexNormalCount ( std::uint16_t  meshIndex) const
inlineoverride
728 {
729 if (meshIndex < dna.geometry.meshes.size()) {
730 return static_cast<std::uint32_t>(dna.geometry.meshes[meshIndex].normals.xs.size());
731 }
732 return 0u;
733}

◆ getVertexNormalXs()

template<class TReaderBase >
ConstArrayView< float > dna::ReaderImpl< TReaderBase >::getVertexNormalXs ( std::uint16_t  meshIndex) const
inlineoverride
747 {
748 if (meshIndex < dna.geometry.meshes.size()) {
749 const auto& xNormals = dna.geometry.meshes[meshIndex].normals.xs;
750 return {xNormals.data(), xNormals.size()};
751 }
752 return {};
753}

◆ getVertexNormalYs()

template<class TReaderBase >
ConstArrayView< float > dna::ReaderImpl< TReaderBase >::getVertexNormalYs ( std::uint16_t  meshIndex) const
inlineoverride
756 {
757 if (meshIndex < dna.geometry.meshes.size()) {
758 const auto& yNormals = dna.geometry.meshes[meshIndex].normals.ys;
759 return {yNormals.data(), yNormals.size()};
760 }
761 return {};
762}

◆ getVertexNormalZs()

template<class TReaderBase >
ConstArrayView< float > dna::ReaderImpl< TReaderBase >::getVertexNormalZs ( std::uint16_t  meshIndex) const
inlineoverride
765 {
766 if (meshIndex < dna.geometry.meshes.size()) {
767 const auto& zNormals = dna.geometry.meshes[meshIndex].normals.zs;
768 return {zNormals.data(), zNormals.size()};
769 }
770 return {};
771}

◆ getVertexPosition()

template<class TReaderBase >
Position dna::ReaderImpl< TReaderBase >::getVertexPosition ( std::uint16_t  meshIndex,
std::uint32_t  vertexIndex 
) const
inlineoverride
658 {
659 if (meshIndex < dna.geometry.meshes.size()) {
660 const auto& positions = dna.geometry.meshes[meshIndex].positions;
661 if (vertexIndex < positions.size()) {
662 return {positions.xs[vertexIndex], positions.ys[vertexIndex], positions.zs[vertexIndex]};
663 }
664 }
665 return {};
666}

◆ getVertexPositionCount()

template<class TReaderBase >
std::uint32_t dna::ReaderImpl< TReaderBase >::getVertexPositionCount ( std::uint16_t  meshIndex) const
inlineoverride
650 {
651 if (meshIndex < dna.geometry.meshes.size()) {
652 return static_cast<std::uint32_t>(dna.geometry.meshes[meshIndex].positions.xs.size());
653 }
654 return 0u;
655}

◆ getVertexPositionXs()

template<class TReaderBase >
ConstArrayView< float > dna::ReaderImpl< TReaderBase >::getVertexPositionXs ( std::uint16_t  meshIndex) const
inlineoverride
669 {
670 if (meshIndex < dna.geometry.meshes.size()) {
671 const auto& xPositions = dna.geometry.meshes[meshIndex].positions.xs;
672 return {xPositions.data(), xPositions.size()};
673 }
674 return {};
675}

◆ getVertexPositionYs()

template<class TReaderBase >
ConstArrayView< float > dna::ReaderImpl< TReaderBase >::getVertexPositionYs ( std::uint16_t  meshIndex) const
inlineoverride
678 {
679 if (meshIndex < dna.geometry.meshes.size()) {
680 const auto& yPositions = dna.geometry.meshes[meshIndex].positions.ys;
681 return {yPositions.data(), yPositions.size()};
682 }
683 return {};
684}

◆ getVertexPositionZs()

template<class TReaderBase >
ConstArrayView< float > dna::ReaderImpl< TReaderBase >::getVertexPositionZs ( std::uint16_t  meshIndex) const
inlineoverride
687 {
688 if (meshIndex < dna.geometry.meshes.size()) {
689 const auto& zPositions = dna.geometry.meshes[meshIndex].positions.zs;
690 return {zPositions.data(), zPositions.size()};
691 }
692 return {};
693}

◆ getVertexTextureCoordinate()

template<class TReaderBase >
TextureCoordinate dna::ReaderImpl< TReaderBase >::getVertexTextureCoordinate ( std::uint16_t  meshIndex,
std::uint32_t  textureCoordinateIndex 
) const
inlineoverride
705 {
706 if (meshIndex < dna.geometry.meshes.size()) {
707 const auto& textureCoordinates = dna.geometry.meshes[meshIndex].textureCoordinates;
708 if (textureCoordinateIndex < textureCoordinates.size()) {
709 return {textureCoordinates.us[textureCoordinateIndex], textureCoordinates.vs[textureCoordinateIndex]};
710 }
711 }
712 return {};
713}

◆ getVertexTextureCoordinateCount()

template<class TReaderBase >
std::uint32_t dna::ReaderImpl< TReaderBase >::getVertexTextureCoordinateCount ( std::uint16_t  meshIndex) const
inlineoverride
696 {
697 if (meshIndex < dna.geometry.meshes.size()) {
698 return static_cast<std::uint32_t>(dna.geometry.meshes[meshIndex].textureCoordinates.us.size());
699 }
700 return 0u;
701}

◆ getVertexTextureCoordinateUs()

template<class TReaderBase >
ConstArrayView< float > dna::ReaderImpl< TReaderBase >::getVertexTextureCoordinateUs ( std::uint16_t  meshIndex) const
inlineoverride
716 {
717 const auto& uTextureCoordinates = dna.geometry.meshes[meshIndex].textureCoordinates.us;
718 return {uTextureCoordinates.data(), uTextureCoordinates.size()};
719}

◆ getVertexTextureCoordinateVs()

template<class TReaderBase >
ConstArrayView< float > dna::ReaderImpl< TReaderBase >::getVertexTextureCoordinateVs ( std::uint16_t  meshIndex) const
inlineoverride
722 {
723 const auto& vTextureCoordinates = dna.geometry.meshes[meshIndex].textureCoordinates.vs;
724 return {vTextureCoordinates.data(), vTextureCoordinates.size()};
725}

Member Data Documentation

◆ cache

template<class TReaderBase >
DenormalizedData<TReaderBase> dna::ReaderImpl< TReaderBase >::cache
mutableprotected

The documentation for this class was generated from the following file: