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;
}
}