MCPcopy Create free account
hub / github.com/PDAL/PDAL / addPoint

Method addPoint

io/ObjReader.cpp:126–164  ·  view source on GitHub ↗

adds a point to the point table

Source from the content-addressed store, hash-verified

124
125// adds a point to the point table
126PointId ObjReader::addPoint(PointViewPtr view, VTN vertex)
127{
128 XYZW v, t, n;
129 PointRef pt = view->point(m_index);
130 m_index++;
131
132 int64_t vertexIndex = std::get<0>(vertex) - 1;
133 if (vertexIndex < 0 || (size_t)vertexIndex >= m_vertices.size())
134 throwError("Vertex index '" + std::to_string(vertexIndex + 1) + "` specified "
135 "for face doesn't exist.");
136 v = m_vertices.at(vertexIndex);
137 pt.setField(Dimension::Id::X, v.x);
138 pt.setField(Dimension::Id::Y, v.y);
139 pt.setField(Dimension::Id::Z, v.z);
140 pt.setField(Dimension::Id::W, v.w);
141
142 int64_t textureIndex = std::get<1>(vertex) - 1;
143 if (textureIndex >= 0) {
144 if ((size_t)textureIndex >= m_textureVertices.size())
145 throwError("Texture vertex index '" + std::to_string(textureIndex + 1) + "' specified "
146 "for face doesn't exist.");
147 t = m_textureVertices.at(textureIndex);
148 pt.setField(Dimension::Id::TextureU, t.x);
149 pt.setField(Dimension::Id::TextureV, t.y);
150 pt.setField(Dimension::Id::TextureW, t.z);
151 }
152
153 int64_t normalIndex = std::get<2>(vertex) - 1;
154 if (normalIndex >= 0) {
155 if ((size_t)normalIndex >= m_normalVertices.size())
156 throwError("Normal vertex index '" + std::to_string(normalIndex + 1) + "' specified "
157 "for face doesn't exist.");
158 n = m_normalVertices.at(normalIndex);
159 pt.setField(Dimension::Id::NormalX, n.x);
160 pt.setField(Dimension::Id::NormalY, n.y);
161 pt.setField(Dimension::Id::NormalZ, n.z);
162 }
163 return pt.pointId();
164}
165
166void ObjReader::newVertex(double x, double y, double z)
167{

Callers 3

parseGPolygonMethod · 0.45
processOneMethod · 0.45
fillPointBufMethod · 0.45

Calls 4

pointMethod · 0.80
atMethod · 0.80
sizeMethod · 0.45
setFieldMethod · 0.45

Tested by

no test coverage detected