Salome HOME
projects
/
modules
/
smesh.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
PR: debug SMDS memimp
[modules/smesh.git]
/
src
/
SMDS
/
SMDS_VtkFace.cxx
diff --git
a/src/SMDS/SMDS_VtkFace.cxx
b/src/SMDS/SMDS_VtkFace.cxx
index 57ff907f4b645dd24ad60433bf76ec08b0b53def..ad53647cc5512bf63cf61c851bb84ab0c0d34ab9 100644
(file)
--- a/
src/SMDS/SMDS_VtkFace.cxx
+++ b/
src/SMDS/SMDS_VtkFace.cxx
@@
-28,8
+28,14
@@
void SMDS_VtkFace::init(std::vector<vtkIdType> nodeIds, SMDS_Mesh* mesh)
myIdInShape = -1;
myMeshId = mesh->getMeshId();
vtkIdType aType = VTK_TRIANGLE;
myIdInShape = -1;
myMeshId = mesh->getMeshId();
vtkIdType aType = VTK_TRIANGLE;
- if (nodeIds.size() == 4)
- aType = VTK_QUAD;
+ switch(nodeIds.size())
+ {
+ case 3: aType = VTK_TRIANGLE; break;
+ case 4: aType = VTK_QUAD; break;
+ case 6: aType = VTK_QUADRATIC_TRIANGLE; break;
+ case 8: aType = VTK_QUADRATIC_QUAD; break;
+ default: aType = VTK_TRIANGLE; break;
+ }
myVtkID = grid->InsertNextLinkedCell(aType, nodeIds.size(), &nodeIds[0]);
}
myVtkID = grid->InsertNextLinkedCell(aType, nodeIds.size(), &nodeIds[0]);
}
@@
-45,7
+51,15
@@
void SMDS_VtkFace::Print(std::ostream & OS) const
int SMDS_VtkFace::NbEdges() const
{
int SMDS_VtkFace::NbEdges() const
{
- return NbNodes();
+ switch(NbNodes())
+ {
+ case 3:
+ case 6: return 3;
+ case 4:
+ case 8: return 4;
+ default: MESSAGE("invalid number of nodes");
+ }
+ return 0;
}
int SMDS_VtkFace::NbFaces() const
}
int SMDS_VtkFace::NbFaces() const
@@
-68,26
+82,39
@@
int SMDS_VtkFace::NbNodes() const
const SMDS_MeshNode*
SMDS_VtkFace::GetNode(const int ind) const
{
const SMDS_MeshNode*
SMDS_VtkFace::GetNode(const int ind) const
{
- return 0;
+ return SMDS_MeshElement::GetNode(ind); // --- a optimiser !
+}
+
+bool SMDS_VtkFace::IsQuadratic() const
+{
+ if (this->NbNodes() > 5)
+ return true;
+ else
+ return false;
}
SMDSAbs_EntityType SMDS_VtkFace::GetEntityType() const
{
}
SMDSAbs_EntityType SMDS_VtkFace::GetEntityType() const
{
- int nbNodes = NbNodes();
- if (nbNodes == 3)
- return SMDSEntity_Triangle;
- else
- return SMDSEntity_Quadrangle;
+ SMDSAbs_EntityType aType = SMDSEntity_Triangle;
+ switch(NbNodes())
+ {
+ case 3:
+ case 6: aType = SMDSEntity_Triangle; break;
+ case 4:
+ case 8: aType = SMDSEntity_Quadrangle; break;
+ }
+ return aType;
}
vtkIdType SMDS_VtkFace::GetVtkType() const
{
}
vtkIdType SMDS_VtkFace::GetVtkType() const
{
- int nbNodes = NbNodes();
- if (nbNodes == 3)
- return VTK_TRIANGLE;
- else
- return VTK_QUAD;
-
+ switch(NbNodes())
+ {
+ case 3: return VTK_TRIANGLE;
+ case 6: return VTK_QUADRATIC_TRIANGLE;
+ case 4: return VTK_QUAD;
+ case 8: return VTK_QUADRATIC_QUAD;
+ }
}
SMDS_ElemIteratorPtr SMDS_VtkFace::elementsIterator(SMDSAbs_ElementType type) const
}
SMDS_ElemIteratorPtr SMDS_VtkFace::elementsIterator(SMDSAbs_ElementType type) const