MCPcopy Create free account
hub / github.com/assimp/assimp / ParseSemantic

Method ParseSemantic

code/AssetLib/Ply/PlyParser.cpp:109–186  ·  view source on GitHub ↗

------------------------------------------------------------------------------------------------

Source from the content-addressed store, hash-verified

107
108// ------------------------------------------------------------------------------------------------
109ESemantic Property::ParseSemantic(std::vector<char> &buffer) {
110 ai_assert(!buffer.empty());
111
112 ESemantic eOut = PLY::EST_INVALID;
113 if (DOM::TokenMatch(buffer, "red", 3)) {
114 eOut = EST_Red;
115 } else if (DOM::TokenMatch(buffer, "green", 5)) {
116 eOut = EST_Green;
117 } else if (DOM::TokenMatch(buffer, "blue", 4)) {
118 eOut = EST_Blue;
119 } else if (DOM::TokenMatch(buffer, "alpha", 5)) {
120 eOut = EST_Alpha;
121 } else if (DOM::TokenMatch(buffer, "vertex_index", 12) || PLY::DOM::TokenMatch(buffer, "vertex_indices", 14)) {
122 eOut = EST_VertexIndex;
123 } else if (DOM::TokenMatch(buffer, "texcoord", 8)) // Manage uv coords on faces
124 {
125 eOut = EST_TextureCoordinates;
126 } else if (DOM::TokenMatch(buffer, "material_index", 14)) {
127 eOut = EST_MaterialIndex;
128 } else if (DOM::TokenMatch(buffer, "ambient_red", 11)) {
129 eOut = EST_AmbientRed;
130 } else if (DOM::TokenMatch(buffer, "ambient_green", 13)) {
131 eOut = EST_AmbientGreen;
132 } else if (DOM::TokenMatch(buffer, "ambient_blue", 12)) {
133 eOut = EST_AmbientBlue;
134 } else if (DOM::TokenMatch(buffer, "ambient_alpha", 13)) {
135 eOut = EST_AmbientAlpha;
136 } else if (DOM::TokenMatch(buffer, "diffuse_red", 11)) {
137 eOut = EST_DiffuseRed;
138 } else if (DOM::TokenMatch(buffer, "diffuse_green", 13)) {
139 eOut = EST_DiffuseGreen;
140 } else if (DOM::TokenMatch(buffer, "diffuse_blue", 12)) {
141 eOut = EST_DiffuseBlue;
142 } else if (DOM::TokenMatch(buffer, "diffuse_alpha", 13)) {
143 eOut = EST_DiffuseAlpha;
144 } else if (DOM::TokenMatch(buffer, "specular_red", 12)) {
145 eOut = EST_SpecularRed;
146 } else if (DOM::TokenMatch(buffer, "specular_green", 14)) {
147 eOut = EST_SpecularGreen;
148 } else if (DOM::TokenMatch(buffer, "specular_blue", 13)) {
149 eOut = EST_SpecularBlue;
150 } else if (DOM::TokenMatch(buffer, "specular_alpha", 14)) {
151 eOut = EST_SpecularAlpha;
152 } else if (DOM::TokenMatch(buffer, "opacity", 7)) {
153 eOut = EST_Opacity;
154 } else if (DOM::TokenMatch(buffer, "specular_power", 14)) {
155 eOut = EST_PhongPower;
156 } else if (DOM::TokenMatch(buffer, "r", 1)) {
157 eOut = EST_Red;
158 } else if (DOM::TokenMatch(buffer, "g", 1)) {
159 eOut = EST_Green;
160 } else if (DOM::TokenMatch(buffer, "b", 1)) {
161 eOut = EST_Blue;
162 }
163
164 // NOTE: Blender3D exports texture coordinates as s,t tuples
165 else if (DOM::TokenMatch(buffer, "u", 1) || PLY::DOM::TokenMatch(buffer, "s", 1) || PLY::DOM::TokenMatch(buffer, "tx", 2) || PLY::DOM::TokenMatch(buffer, "texture_u", 9)) {
166 eOut = EST_UTextureCoord;

Callers

nothing calls this directly

Calls 3

TokenMatchFunction · 0.85
SkipLineFunction · 0.50
emptyMethod · 0.45

Tested by

no test coverage detected