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
33 0, 0.262865603, -0.425325394,
34 0.249999985, 0.0812300518, -0.425325394,
35 0, 0.44721368, -0.223606572,
36 0.249999985, 0.344095677, -0.262865305,
37 0.425325423, 0.138196841, -0.223606601,
38 0.154508501, -0.212662712, -0.425325423,
39 0.404508621, -0.131432697, -0.262865394,
40 0.262865603, -0.361803472, -0.223606631,
41 -0.154508501, -0.212662712, -0.425325423,
42 0, -0.425325513, -0.262865365,
43 -0.262865603, -0.361803472, -0.223606631,
44 -0.249999985, 0.0812300518, -0.425325394,
45 -0.404508621, -0.131432697, -0.262865394,
46 -0.425325423, 0.138196841, -0.223606601,
47 -0.249999985, 0.344095677, -0.262865305,
48 -0.154508486, 0.4755283, 0,
49 -0.404508412, 0.293892711, 0,
50 -0.262865603, 0.361803472, 0.223606631,
52 -0.404508412, -0.293892711, 0,
53 -0.425325423, -0.138196841, 0.223606601,
54 -0.154508486, -0.4755283, 0,
55 0.154508486, -0.4755283, 0,
56 0, -0.44721368, 0.223606572,
57 0.404508412, -0.293892711, 0,
59 0.425325423, -0.138196841, 0.223606601,
60 0.404508412, 0.293892711, 0,
61 0.154508486, 0.4755283, 0,
62 0.262865603, 0.361803472, 0.223606631,
63 0, 0.425325513, 0.262865365,
64 -0.404508621, 0.131432697, 0.262865394,
65 -0.249999985, -0.344095677, 0.262865305,
66 0.249999985, -0.344095677, 0.262865305,
67 0.404508621, 0.131432697, 0.262865394,
69 0.154508501, 0.212662712, 0.425325423,
70 -0.154508501, 0.212662712, 0.425325423,
71 0.249999985, -0.0812300518, 0.425325394,
72 0, -0.262865603, 0.425325394,
73 -0.249999985, -0.0812300518, 0.425325394
76 std::vector<int> buffFaces
160 std::shared_ptr<VecDataArray<double, 3>> verticesPtr = std::make_shared<VecDataArray<double, 3>>();
162 vertices.
reserve(static_cast<int>(buffVertices.size() / 3));
163 for (
size_t i = 0; i < buffVertices.size() / 3; ++i)
165 vertices.push_back(Vec3d(buffVertices[i * 3],
166 buffVertices[i * 3 + 1],
167 buffVertices[i * 3 + 2]));
170 std::shared_ptr<VecDataArray<int, 3>> facesPtr = std::make_shared<VecDataArray<int, 3>>();
172 faces.
reserve(static_cast<int>(buffFaces.size() / 3));
173 for (
size_t i = 0; i < buffFaces.size() / 3; ++i)
176 faces.push_back(Vec3i(buffFaces[i * 3] - 1, buffFaces[i * 3 + 1] - 1, buffFaces[i * 3 + 2] - 1));
179 return { verticesPtr, facesPtr };
void reserve(const int size) override
Allocates extra capacity, for the number of values, conservative reallocate.