1 #include "SMDS_VtkFace.hxx"
2 #include "SMDS_MeshNode.hxx"
3 #include "SMDS_Mesh.hxx"
4 #include "SMDS_VtkCellIterator.hxx"
12 SMDS_VtkFace::SMDS_VtkFace()
16 SMDS_VtkFace::SMDS_VtkFace(std::vector<vtkIdType> nodeIds, SMDS_Mesh* mesh)
21 SMDS_VtkFace::~SMDS_VtkFace()
25 void SMDS_VtkFace::init(std::vector<vtkIdType> nodeIds, SMDS_Mesh* mesh)
27 vtkUnstructuredGrid* grid = mesh->getGrid();
29 myMeshId = mesh->getMeshId();
30 vtkIdType aType = VTK_TRIANGLE;
31 if (nodeIds.size() == 4)
33 myVtkID = grid->InsertNextLinkedCell(aType, nodeIds.size(), &nodeIds[0]);
36 bool SMDS_VtkFace::ChangeNodes(const SMDS_MeshNode* nodes[], const int nbNodes)
41 void SMDS_VtkFace::Print(std::ostream & OS) const
43 OS << "edge <" << GetID() << "> : ";
46 int SMDS_VtkFace::NbEdges() const
51 int SMDS_VtkFace::NbFaces() const
56 int SMDS_VtkFace::NbNodes() const
58 vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
59 int nbPoints = grid->GetCell(myVtkID)->GetNumberOfPoints();
64 * \brief Return node by its index
65 * \param ind - node index
66 * \retval const SMDS_MeshNode* - the node
69 SMDS_VtkFace::GetNode(const int ind) const
74 SMDSAbs_EntityType SMDS_VtkFace::GetEntityType() const
76 int nbNodes = NbNodes();
78 return SMDSEntity_Triangle;
80 return SMDSEntity_Quadrangle;
83 vtkIdType SMDS_VtkFace::GetVtkType() const
85 int nbNodes = NbNodes();
93 SMDS_ElemIteratorPtr SMDS_VtkFace::elementsIterator(SMDSAbs_ElementType type) const
98 return SMDS_ElemIteratorPtr(new SMDS_VtkCellIterator(SMDS_Mesh::_meshList[myMeshId], myVtkID, GetEntityType()));
100 MESSAGE("ERROR : Iterator not implemented");
101 return SMDS_ElemIteratorPtr((SMDS_ElemIterator*) NULL);