204 bool loadStl(std::vector<Vec3f>& points, std::vector<TopologyModule::Triangle>& triangles, std::string filename,
bool append)
211 int offset = append ? points.size() : 0;
214 std::vector<float> coords;
215 std::vector<float> normals;
216 std::vector<size_t> tris;
217 std::vector<size_t> solids;
220 stl_reader::ReadStlFile(filename.c_str(), coords, normals, tris, solids);
221 const size_t numTris = tris.size() / 3;
223 catch (
const std::exception& e) {
224 std::cerr <<
"Error reading STL file: " << e.what() << std::endl;
227 std::cout <<
"************************ Loading STL ************************ " << std::endl << std::endl;
228 std::cout <<
" " <<
" coords size = " << coords.size() << std::endl << std::endl;
229 std::cout <<
" " <<
" normal size =" << normals.size() << std::endl << std::endl;
230 std::cout <<
" " <<
" tris size = " << tris.size() << std::endl << std::endl;
231 std::cout <<
" " <<
" solids size =" << solids.size() << std::endl << std::endl;
233 if (solids.size() == 0) {
return false; }
235 for (
int i = 0; i < coords.size() / 3; i++)
237 points.push_back(
Vec3f(coords[3 * i], coords[3 * i + 1], coords[3 * i + 2]));
239 std::cout <<
"************************ Loading : f ************************ " << std::endl << std::endl;
243 for (
int s = 0; s < tris.size() / 3; s++)
247 triangles.push_back(
TopologyModule::Triangle(tris[3 * s] + offset, tris[3 * s + 1] + offset, tris[3 * s + 2] + offset));
250 std::cout <<
"************************ Loading completed **********************" << std::endl << std::endl;