18 #ifndef viskores_io_internal_VTKDataSetCells_h
19 #define viskores_io_internal_VTKDataSetCells_h
37 enum UnsupportedVTKCells
39 CELL_SHAPE_POLY_VERTEX = 2,
41 CELL_SHAPE_TRIANGLE_STRIP = 6,
51 std::vector<viskores::Id> newConnectivity;
52 std::vector<viskores::IdComponent> newNumIndices;
53 std::vector<viskores::UInt8> newShapes;
54 std::vector<viskores::Id> permutationVec;
75 newShapes.push_back(shape);
76 newNumIndices.push_back(numInds);
79 newConnectivity.push_back(connPortal.Get(connIdx++));
81 permutationVec.push_back(i);
92 else if (numVerts == 4)
96 newShapes.push_back(newShape);
97 newNumIndices.push_back(numVerts);
100 newConnectivity.push_back(connPortal.Get(connIdx++));
102 permutationVec.push_back(i);
105 case CELL_SHAPE_POLY_VERTEX:
111 newNumIndices.push_back(1);
112 newConnectivity.push_back(connPortal.Get(connIdx));
113 permutationVec.push_back(i);
124 newNumIndices.push_back(2);
125 newConnectivity.push_back(connPortal.Get(connIdx));
126 newConnectivity.push_back(connPortal.Get(connIdx + 1));
127 permutationVec.push_back(i);
133 case CELL_SHAPE_TRIANGLE_STRIP:
139 newNumIndices.push_back(3);
142 newConnectivity.push_back(connPortal.Get(connIdx));
143 newConnectivity.push_back(connPortal.Get(connIdx + 1));
144 newConnectivity.push_back(connPortal.Get(connIdx + 2));
148 newConnectivity.push_back(connPortal.Get(connIdx + 2));
149 newConnectivity.push_back(connPortal.Get(connIdx + 1));
150 newConnectivity.push_back(connPortal.Get(connIdx));
152 permutationVec.push_back(i);
158 case CELL_SHAPE_PIXEL:
161 newNumIndices.push_back(numInds);
162 newConnectivity.push_back(connPortal.Get(connIdx + 0));
163 newConnectivity.push_back(connPortal.Get(connIdx + 1));
164 newConnectivity.push_back(connPortal.Get(connIdx + 3));
165 newConnectivity.push_back(connPortal.Get(connIdx + 2));
166 permutationVec.push_back(i);
170 case CELL_SHAPE_VOXEL:
173 newNumIndices.push_back(numInds);
174 newConnectivity.push_back(connPortal.Get(connIdx + 0));
175 newConnectivity.push_back(connPortal.Get(connIdx + 1));
176 newConnectivity.push_back(connPortal.Get(connIdx + 3));
177 newConnectivity.push_back(connPortal.Get(connIdx + 2));
178 newConnectivity.push_back(connPortal.Get(connIdx + 4));
179 newConnectivity.push_back(connPortal.Get(connIdx + 5));
180 newConnectivity.push_back(connPortal.Get(connIdx + 7));
181 newConnectivity.push_back(connPortal.Get(connIdx + 6));
182 permutationVec.push_back(i);
195 permutationVec.clear();
200 std::copy(permutationVec.begin(),
201 permutationVec.end(),
206 std::copy(newShapes.begin(),
210 std::copy(newNumIndices.begin(),
214 std::copy(newConnectivity.begin(),
215 newConnectivity.end(),
234 if (shapesPortal.Get(i) != shape0)
244 #endif // viskores_io_internal_VTKDataSetCells_h