22 #include "imstkMath.h" 23 #include "imstkVecDataArray.h" 25 using namespace imstk;
27 std::pair<std::shared_ptr<VecDataArray<double, 3>>, std::shared_ptr<VecDataArray<int, 3>>>
30 std::vector<double> buffVertices
37 std::vector<int> buffFaces
42 std::shared_ptr<VecDataArray<double, 3>> verticesPtr = std::make_shared<VecDataArray<double, 3>>();
44 vertices.
reserve(static_cast<int>(buffVertices.size() / 3));
45 for (
size_t i = 0; i < buffVertices.size() / 3; ++i)
47 vertices.push_back(Vec3d(buffVertices[i * 3],
48 buffVertices[i * 3 + 1],
49 buffVertices[i * 3 + 2]));
52 std::shared_ptr<VecDataArray<int, 3>> facesPtr = std::make_shared<VecDataArray<int, 3>>();
54 faces.
reserve(static_cast<int>(buffFaces.size() / 3));
55 for (
size_t i = 0; i < buffFaces.size() / 3; ++i)
58 faces.push_back(Vec3i(buffFaces[i * 3] - 1, buffFaces[i * 3 + 1] - 1, buffFaces[i * 3 + 2] - 1));
61 return { verticesPtr, facesPtr };
void reserve(const int size) override
Allocates extra capacity, for the number of values, conservative reallocate.