MeshType::Pointer
CreatePointOnlyMesh();
void
CreateMeshWithEdges();
int
main(int, char *[])
{
CreateMeshWithEdges();
return 0;
}
MeshType::Pointer
CreatePointOnlyMesh()
{
MeshType::Pointer mesh = MeshType::New();
p0[0] = -1.0;
p0[1] = -1.0;
p0[2] = 0.0;
p1[0] = 1.0;
p1[1] = -1.0;
p1[2] = 0.0;
p2[0] = 1.0;
p2[1] = 1.0;
p2[2] = 0.0;
p3[0] = 1.0;
p3[1] = 1.0;
p3[2] = 1.0;
mesh->SetPoint(0, p0);
mesh->SetPoint(1, p1);
mesh->SetPoint(2, p2);
mesh->SetPoint(3, p3);
std::cout << "Points = " << mesh->GetNumberOfPoints() << std::endl;
using PointsIterator = MeshType::PointsContainer::Iterator;
PointsIterator pointIterator = mesh->GetPoints()->
Begin();
PointsIterator end = mesh->GetPoints()->End();
while (pointIterator != end)
{
std::cout << p << std::endl;
++pointIterator;
}
return mesh;
}
void
CreateMeshWithEdges()
{
MeshType::Pointer mesh = CreatePointOnlyMesh();
using CellAutoPointer = MeshType::CellType::CellAutoPointer;
CellAutoPointer colline;
colline.TakeOwnership(new LineType);
unsigned int pointId0 = 2;
unsigned int pointId1 = 3;
colline->SetPointId(1, pointId1);
mesh->SetCell(0, colline);
using CellIterator = MeshType::CellsContainer::Iterator;
CellIterator cellIterator = mesh->GetCells()->Begin();
CellIterator CellsEnd = mesh->GetCells()->End();
while (cellIterator != CellsEnd)
{
MeshType::CellType * cellptr = cellIterator.Value();
auto * line = dynamic_cast<LineType *>(cellptr);
std::cout << "line first point id: " << *linePoint0 << std::endl;
std::cout << "line second point id: " << *linePoint1 << std::endl;
++cellIterator;
}
}