MCPcopy Create free account
hub / github.com/CesiumGS/cesium-native / getNormalAccessorView

Function getNormalAccessorView

CesiumGltf/src/AccessorUtility.cpp:42–75  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

40}
41
42NormalAccessorType
43getNormalAccessorView(const Model& model, const MeshPrimitive& primitive) {
44 auto normalAttribute = primitive.attributes.find("NORMAL");
45 if (normalAttribute == primitive.attributes.end()) {
46 return NormalAccessorType();
47 }
48
49 const Accessor* pAccessor =
50 model.getSafe<Accessor>(&model.accessors, normalAttribute->second);
51 if (!pAccessor || pAccessor->type != Accessor::Type::VEC3) {
52 return NormalAccessorType();
53 }
54
55 switch (pAccessor->componentType) {
56 case Accessor::ComponentType::BYTE:
57 if (pAccessor->normalized) {
58 return AccessorView<AccessorTypes::VEC3<int8_t>>(model, *pAccessor);
59 } else {
60 // Invalid accessor, BYTE must be normalized
61 return NormalAccessorType();
62 }
63 case Accessor::ComponentType::SHORT:
64 if (pAccessor->normalized) {
65 return AccessorView<AccessorTypes::VEC3<int16_t>>(model, *pAccessor);
66 } else {
67 // Invalid accessor, SHORT must be normalized
68 return NormalAccessorType();
69 }
70 case Accessor::ComponentType::FLOAT:
71 return AccessorView<AccessorTypes::VEC3<float>>(model, *pAccessor);
72 default:
73 return NormalAccessorType();
74 }
75}
76
77namespace {
78FeatureIdAccessorType getFeatureIdViewFromAccessorIndex(

Callers 1

Calls 1

endMethod · 0.45

Tested by

no test coverage detected