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
32 0.353553385, -0.707106769, -0.353553414,
33 -0.353553414, -0.707106769, 0.353553385,
34 0.853553414, 0, 0.146446615,
35 0.146446615, 0, 0.853553414,
36 -0.853553414, 0, -0.146446615,
37 -0.146446615, 0, -0.853553414,
38 -0.353553385, 0.707106769, 0.353553414,
39 0.353553414, 0.707106769, -0.353553385
42 std::vector<int> buffFaces
58 std::shared_ptr<VecDataArray<double, 3>> verticesPtr = std::make_shared<VecDataArray<double, 3>>();
60 vertices.
reserve(static_cast<int>(buffVertices.size() / 3));
61 for (
size_t i = 0; i < buffVertices.size() / 3; ++i)
63 vertices.push_back(Vec3d(buffVertices[i * 3],
64 buffVertices[i * 3 + 1],
65 buffVertices[i * 3 + 2]));
68 std::shared_ptr<VecDataArray<int, 3>> facesPtr = std::make_shared<VecDataArray<int, 3>>();
70 faces.
reserve(static_cast<int>(buffFaces.size() / 3));
71 for (
size_t i = 0; i < buffFaces.size() / 3; ++i)
74 faces.push_back(Vec3i(buffFaces[i * 3] - 1, buffFaces[i * 3 + 1] - 1, buffFaces[i * 3 + 2] - 1));
77 return { verticesPtr, facesPtr };
void reserve(const int size) override
Allocates extra capacity, for the number of values, conservative reallocate.