#include <SMDS_VtkFace.hxx>

Public Types | |
| typedef SMDS_StdIterator < const SMDS_MeshNode *, SMDS_ElemIteratorPtr > | iterator |
Public Member Functions | |
| SMDS_VtkFace () | |
| SMDS_VtkFace (std::vector< vtkIdType > nodeIds, SMDS_Mesh *mesh) | |
| ~SMDS_VtkFace () | |
| void | init (std::vector< vtkIdType > nodeIds, SMDS_Mesh *mesh) |
| void | initPoly (std::vector< vtkIdType > nodeIds, SMDS_Mesh *mesh) |
| bool | ChangeNodes (const SMDS_MeshNode *nodes[], const int nbNodes) |
| void | ChangeApex (SMDS_MeshNode *node) |
| change only the first node, used for temporary triangles in quadrangle to triangle adaptor | |
| void | Print (std::ostream &OS) const |
| int | NbEdges () const |
| Return the number of edges owned by or linked with the current element. | |
| int | NbFaces () const |
| Return the number of faces owned by or linked with the current element. | |
| int | NbNodes () const |
| Return The number of nodes owned by the current element. | |
| virtual vtkIdType | GetVtkType () const |
| virtual SMDSAbs_EntityType | GetEntityType () const |
| Return type of entity. | |
| virtual const SMDS_MeshNode * | GetNode (const int ind) const |
| Return node by its index. | |
| virtual bool | IsQuadratic () const |
| virtual bool | IsPoly () const |
| virtual bool | IsMediumNode (const SMDS_MeshNode *node) const |
| virtual SMDS_ElemIteratorPtr | elementsIterator (SMDSAbs_ElementType type) const |
| virtual SMDS_ElemIteratorPtr | nodesIteratorToUNV () const |
| virtual, redefined in vtkEdge, vtkFace and vtkVolume classes | |
| virtual SMDS_ElemIteratorPtr | interlacedNodesElemIterator () const |
| virtual, redefined in vtkEdge, vtkFace and vtkVolume classes | |
| SMDSAbs_ElementType | GetType () const |
| Return the type of the current element. | |
| virtual bool | vtkOrder (const SMDS_MeshNode *nodes[], const int nbNodes) |
| SMDS_ElemIteratorPtr | nodesIterator () const |
| Create an iterator which iterate on nodes owned by the element. | |
| SMDS_ElemIteratorPtr | edgesIterator () const |
| Create an iterator which iterate on edges linked with or owned by the element. | |
| SMDS_ElemIteratorPtr | facesIterator () const |
| Create an iterator which iterate on faces linked with or owned by the element. | |
| iterator | begin_nodes () const |
| iterator | end_nodes () const |
| int | GetID () const |
| virtual int | NbCornerNodes () const |
| Return number of nodes excluding medium ones. | |
| const SMDS_MeshNode * | GetNodeWrap (const int ind) const |
| Return node by its index. | |
| virtual bool | IsValidIndex (const int ind) const |
| Return true if index of node is valid (0 <= ind < NbNodes()) | |
| int | WrappedIndex (const int ind) const |
| Return a valid node index, fixing the given one if necessary. | |
| int | GetNodeIndex (const SMDS_MeshNode *node) const |
| Check if a node belongs to the element. | |
| ShortType | getMeshId () const |
| LongType | getshapeId () const |
| int | getIdInShape () const |
| int | getVtkId () const |
Static Public Attributes | |
| static int | nbCells = 0 |
Protected Member Functions | |
| void | exchange (const SMDS_MeshNode *nodes[], int a, int b) |
| void | setId (int id) |
| void | setShapeId (LongType shapeId) |
| void | setIdInShape (int id) |
| void | setVtkId (int vtkId) |
| virtual void | init (int id=-1, ShortType meshId=-1, LongType shapeId=0) |
Protected Attributes | |
| int | myID |
| Element index in vector SMDS_Mesh.myNodes or SMDS_Mesh.myCells. | |
| int | myVtkID |
| index in vtkUnstructuredGrid | |
| ShortType | myMeshId |
| SMDS_Mesh identification in SMESH. | |
| LongType | myShapeId |
| SubShape and SubMesh identification in SMESHDS. | |
| int | myIdInShape |
| Element index in SMESHDS_SubMesh vector. | |
Friends | |
| class | SMDS_Mesh |
| class | SMESHDS_Mesh |
| class | SMESHDS_SubMesh |
| class | SMDS_MeshElementIDFactory |
| std::ostream & | operator<< (std::ostream &OS, const SMDS_MeshElement *) |
| bool | SMDS_MeshElementIDFactory::BindID (int ID, SMDS_MeshElement *elem) |
Definition at line 29 of file SMDS_VtkFace.hxx.
typedef SMDS_StdIterator< const SMDS_MeshNode*, SMDS_ElemIteratorPtr > SMDS_MeshElement.iterator [inherited] |
Definition at line 72 of file SMDS_MeshElement.hxx.
| SMDS_VtkFace::SMDS_VtkFace | ( | ) |
Definition at line 31 of file SMDS_VtkFace.cxx.
{
}
| SMDS_VtkFace::SMDS_VtkFace | ( | std::vector< vtkIdType > | nodeIds, |
| SMDS_Mesh * | mesh | ||
| ) |
Definition at line 35 of file SMDS_VtkFace.cxx.
{
init(nodeIds, mesh);
}
| SMDS_VtkFace::~SMDS_VtkFace | ( | ) |
Definition at line 40 of file SMDS_VtkFace.cxx.
{
}
| iterator SMDS_MeshElement.begin_nodes | ( | ) | const [inherited] |
Definition at line 73 of file SMDS_MeshElement.hxx.
Referenced by SMESH_MeshEditor.convertElemToQuadratic(), SMESH_MeshEditor.ConvertToQuadratic(), StdMeshers_Import_1D.importMesh(), StdMeshers_QuadToTriaAdaptor.MergePiramids(), SMESH_MeshEditor.removeQuadElem(), and VISCOUS._ViscousBuilder.smoothAndCheck().
{ return iterator( nodesIterator() ); }
| void SMDS_VtkFace::ChangeApex | ( | SMDS_MeshNode * | node | ) |
change only the first node, used for temporary triangles in quadrangle to triangle adaptor
Definition at line 271 of file SMDS_VtkFace.cxx.
References SMDS_Mesh._meshList, SMDS_MeshNode.AddInverseElement(), SMDS_MeshElement.getVtkId(), and ex11_grid3partition.grid.
{
vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
vtkIdType npts = 0;
vtkIdType* pts = 0;
grid->GetCellPoints(myVtkID, npts, pts);
grid->RemoveReferenceToCell(pts[0], myVtkID);
pts[0] = node->getVtkId();
node->AddInverseElement(this),
SMDS_Mesh::_meshList[myMeshId]->setMyModified();
}
| bool SMDS_VtkFace::ChangeNodes | ( | const SMDS_MeshNode * | nodes[], |
| const int | nbNodes | ||
| ) | [virtual] |
Implements SMDS_MeshCell.
Definition at line 82 of file SMDS_VtkFace.cxx.
References SMDS_Mesh._meshList, SMDS_MeshElement.getVtkId(), ex11_grid3partition.grid, and MESSAGE.
{
vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
vtkIdType npts = 0;
vtkIdType* pts = 0;
grid->GetCellPoints(myVtkID, npts, pts);
if (nbNodes != npts)
{
MESSAGE("ChangeNodes problem: not the same number of nodes " << npts << " -> " << nbNodes);
return false;
}
for (int i = 0; i < nbNodes; i++)
{
pts[i] = nodes[i]->getVtkId();
}
SMDS_Mesh::_meshList[myMeshId]->setMyModified();
return true;
}
| SMDS_ElemIteratorPtr SMDS_MeshElement::edgesIterator | ( | ) | const [inherited] |
Create an iterator which iterate on edges linked with or owned by the element.
This method call elementsIterator().
Definition at line 80 of file SMDS_MeshElement.cxx.
References SMDSAbs_Edge.
Referenced by SMDS_Mesh.addChildrenWithNodes().
{
return elementsIterator(SMDSAbs_Edge);
}
| SMDS_ElemIteratorPtr SMDS_VtkFace::elementsIterator | ( | SMDSAbs_ElementType | type | ) | const [virtual] |
Reimplemented from SMDS_MeshElement.
Definition at line 247 of file SMDS_VtkFace.cxx.
References SMDS_Mesh._meshList, MESSAGE, and SMDSAbs_Node.
{
switch (type)
{
case SMDSAbs_Node:
return SMDS_ElemIteratorPtr(new SMDS_VtkCellIterator(SMDS_Mesh::_meshList[myMeshId], myVtkID, GetEntityType()));
default:
MESSAGE("ERROR : Iterator not implemented")
;
return SMDS_ElemIteratorPtr((SMDS_ElemIterator*) NULL);
}
}
| iterator SMDS_MeshElement.end_nodes | ( | ) | const [inherited] |
Definition at line 74 of file SMDS_MeshElement.hxx.
Referenced by SMESH_MeshEditor.convertElemToQuadratic(), SMESH_MeshEditor.ConvertToQuadratic(), StdMeshers_QuadToTriaAdaptor.MergePiramids(), and SMESH_MeshEditor.removeQuadElem().
{ return iterator(); }
| void SMDS_MeshCell.exchange | ( | const SMDS_MeshNode * | nodes[], |
| int | a, | ||
| int | b | ||
| ) | [protected, inherited] |
Definition at line 41 of file SMDS_MeshCell.hxx.
References SMESH_demo_hexa2_upd.a.
Referenced by SMDS_VtkVolume.vtkOrder().
{
const SMDS_MeshNode* noda = nodes[a];
nodes[a] = nodes[b];
nodes[b] = noda;
}
| SMDS_ElemIteratorPtr SMDS_MeshElement::facesIterator | ( | ) | const [inherited] |
Create an iterator which iterate on faces linked with or owned by the element.
This method call elementsIterator().
Definition at line 89 of file SMDS_MeshElement.cxx.
References SMDSAbs_Face.
Referenced by SMDS_Mesh.addChildrenWithNodes(), and SMESH.Controls.ManifoldPart.getFacesByLink().
{
return elementsIterator(SMDSAbs_Face);
}
| SMDSAbs_EntityType SMDS_VtkFace::GetEntityType | ( | ) | const [virtual] |
Return type of entity.
Implements SMDS_MeshElement.
Definition at line 215 of file SMDS_VtkFace.cxx.
References SMDS_Mesh._meshList, ex11_grid3partition.grid, SMDSEntity_Polygon, SMDSEntity_Quad_Quadrangle, SMDSEntity_Quad_Triangle, SMDSEntity_Quadrangle, and SMDSEntity_Triangle.
{
vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
vtkIdType aVtkType = grid->GetCellType(this->myVtkID);
SMDSAbs_EntityType aType = SMDSEntity_Polygon;
switch (aVtkType)
{
case VTK_TRIANGLE:
aType = SMDSEntity_Triangle;
break;
case VTK_QUAD:
aType = SMDSEntity_Quadrangle;
break;
case VTK_QUADRATIC_TRIANGLE:
aType = SMDSEntity_Quad_Triangle;
break;
case VTK_QUADRATIC_QUAD:
aType = SMDSEntity_Quad_Quadrangle;
break;
default:
aType = SMDSEntity_Polygon;
}
return aType;
}
| int SMDS_MeshElement.GetID | ( | ) | const [inherited] |
Definition at line 79 of file SMDS_MeshElement.hxx.
Referenced by SMESHDS_Mesh.Add0DElement(), SMESH_MeshEditor_i.Add0DElement(), SMESHDS_Mesh.Add0DElementWithID(), SMESHDS_Mesh.AddEdge(), SMESH_MeshEditor_i.AddEdge(), SMESHDS_Mesh.AddEdgeWithID(), SMESHDS_SubMesh.AddElement(), SMESHDS_Mesh.AddFace(), SMESH_MeshEditor_i.AddFace(), SMESHDS_Mesh.AddFaceWithID(), SMESHDS_SubMesh.AddNode(), SMESHDS_Mesh.AddNode(), SMESH_MeshEditor_i.AddNode(), SMESHDS_Mesh.AddNodeWithID(), SMESHDS_Mesh.AddPolygonalFace(), SMESH_MeshEditor_i.AddPolygonalFace(), SMESHDS_Mesh.AddPolyhedralVolume(), SMESH_MeshEditor_i.AddPolyhedralVolume(), SMESH_MeshEditor_i.AddPolyhedralVolumeByFaces(), SMESHDS_Mesh.AddVolume(), SMESH_MeshEditor_i.AddVolume(), SMESHDS_Mesh.AddVolumeWithID(), SMESH_VisualObjDef.buildElemPrs(), SMESHDS_Mesh.ChangeElementNodes(), SMESHDS_Mesh.ChangePolyhedronNodes(), SMESHGUI_CreatePolyhedralVolumeDlg.checkEditLine(), SMESH_MesherHelper.CheckNodeU(), SMDS_Mesh.Clear(), collectMeshInfo(), StdMeshers_Projection_3D.Compute(), SMESH_Gen_i.ConcatenateCommon(), SMESHDS_GroupBase.Contains(), SMESH_MeshEditor.convertElemToQuadratic(), SMESH_MeshEditor.ConvertFromQuadratic(), SMESH_MeshEditor.ConvertToQuadratic(), SMESH_Gen_i.CopyMesh(), SMESH_Mesh_i.CreateDimGroup(), SMESH_MeshEditor.CreateFlatElementsOnFacesGroups(), SMESH_VisualObjDef.createPoints(), SMESHGUI_CuttingOfQuadsDlg.displayPreview(), SMESHGUI_CreatePolyhedralVolumeDlg.displaySimulation(), SMESH_MeshEditor.DoubleNodesOnGroupBoundaries(), StdMeshers_PrismAsBlock.THorizontalEdgeAdaptor.dumpNodes(), enlargeBoundingBox(), FillSequence(), SMESH_OctreeNode.FindCoincidentNodes(), SMESH.Controls.ManifoldPart.findConnected(), SMESH_Mesh_i.FindElementByNodes(), SMESH_MeshEditor.FindFreeBorder(), SMESH_MeshEditor.FindMatchingNodes(), SMESH_MeshEditor.FindShape(), findTriangles(), SMESH.Controls.FreeEdges.GetBoreders(), SMESH_subMesh_i.GetElementsByType(), SMESH_Mesh_i.GetElementsByType(), SMESH_Mesh_i.GetElemNode(), LinkID_Gen.GetLinkID(), SMESH_Mesh_i.GetNodeInverseElements(), getNodeNodeDistance(), SMESH_Mesh_i.GetSubMeshNodesId(), SMESH.Controls.MultiConnection2D.GetValue(), SMESH.Controls.MultiConnection2D.GetValues(), SMESH.Controls.Length2D.GetValues(), SMDS_VolumeTool.ID(), SMESHGUI_TreeElemInfo.information(), SMESHGUI_SimpleElemInfo.information(), SMESH.Controls.FreeEdges.IsFreeEdge(), SMESH.Controls.ManifoldPart.isInPlane(), SMESH.Controls.CoplanarFaces.IsSatisfy(), SMESH_ProxyMesh.IsTemporary(), VISCOUS._ViscousBuilder.makeGroupOfLE(), StdMeshers_Penta_3D.MakeMeshOnFxy1(), StdMeshers_Penta_3D.MakeNodes(), StdMeshers_Penta_3D.MakeVolumeMesh(), SMESH_MeshEditor_i.MoveClosestNodeToPoint(), SMESHDS_Mesh.MoveNode(), SMESHGUI_ElemInfo.nodeConnectivity(), SMESHGUI_WhatIsDlg.onTextChange(), SMESHGUI_TranslationDlg.onTextChange(), SMESHGUI_SymmetryDlg.onTextChange(), SMESHGUI_SingleEditDlg.onTextChange(), SMESHGUI_SewingDlg.onTextChange(), SMESHGUI_ScaleDlg.onTextChange(), SMESHGUI_RotationDlg.onTextChange(), SMESHGUI_RevolutionDlg.onTextChange(), SMESHGUI_ExtrusionAlongPathDlg.onTextChange(), SMESHGUI_CreatePolyhedralVolumeDlg.onTextChange(), SMESHGUI_MeshPatternDlg.onTextChanged(), TIDCompare.operator()(), TNode.operator<(), operator<<(), DriverUNV_W_SMDS_Mesh.Perform(), DriverMED_W_SMESHDS_Mesh.Perform(), DriverDAT_W_SMDS_Mesh.Perform(), SMDS_VtkVolume.Print(), SMDS_QuadraticEdge.Print(), SMDS_Mesh0DElement.Print(), SMDS_FaceOfEdges.Print(), SMESH.Controls.ElementsOnShape.process(), SMESH.Controls.ElementsOnSurface.process(), SMESH.Controls.ManifoldPart.process(), StdMeshers_Prism_3D.projectBottomToTop(), SMESHDS_Mesh.RemoveElement(), SMESHDS_Mesh.RemoveFreeElement(), SMDS_Mesh.RemoveFreeElement(), SMESHDS_Mesh.RemoveFreeNode(), SMESHDS_Mesh.RemoveNode(), SMESH_MeshEditor.removeQuadElem(), SMESH_ProxyMesh.removeTmpElement(), SMDS_Mesh.Renumber(), SMESH_Gen_i.Save(), SMESHGUI_WhatIsDlg.SelectionIntoArgument(), VISCOUS._ViscousBuilder.setEdgeData(), SMDS_Mesh0DElement.SMDS_Mesh0DElement(), SMESH_TLink.SMESH_TLink(), StdMeshers_MEFISTO_2D.StoreResult(), SMESH_MeshEditor_i.storeResult(), SMESH_MeshEditor.sweepElement(), and SMDS_Mesh.~SMDS_Mesh().
{ return myID; };
| int SMDS_MeshElement.getIdInShape | ( | ) | const [inherited] |
Definition at line 145 of file SMDS_MeshElement.hxx.
Referenced by SMESHDS_SubMesh.AddElement(), SMESHDS_SubMesh.AddNode(), SMESHDS_SubMesh.Contains(), SMESHDS_SubMesh.RemoveElement(), and SMESHDS_SubMesh.RemoveNode().
{ return myIdInShape; }
| ShortType SMDS_MeshElement.getMeshId | ( | ) | const [inherited] |
Definition at line 143 of file SMDS_MeshElement.hxx.
Referenced by SMDS_VolumeTool.GetSize(), and SMESH.Controls.AspectRatio3D.GetValue().
{return myMeshId; }
| const SMDS_MeshNode * SMDS_VtkFace::GetNode | ( | const int | ind | ) | const [virtual] |
Return node by its index.
| ind | - node index |
| const | SMDS_MeshNode* - the node |
Reimplemented from SMDS_MeshElement.
Definition at line 148 of file SMDS_VtkFace.cxx.
References SMDS_MeshElement.GetNode().
{
return SMDS_MeshElement::GetNode(ind); // --- a optimiser !
}
| int SMDS_MeshElement::GetNodeIndex | ( | const SMDS_MeshNode * | node | ) | const [inherited] |
Check if a node belongs to the element.
| node | - the node to check |
| int | - node index within the element, -1 if not found |
Definition at line 266 of file SMDS_MeshElement.cxx.
References ex29_refine.node().
Referenced by VISCOUS._ViscousBuilder.addBoundaryElements(), StdMeshers_QuadToTriaAdaptor.Compute2ndPart(), SMDS_Mesh.FindEdge(), SMDS_Mesh.FindElement(), SMESH_MeshEditor.FindFaceInSet(), SMESH_MeshEditor.FindMatchingNodes(), SMESH_ElementSearcherImpl.findOuterBoundary(), SMESH_Algo.GetCommonNodes(), SMDS_VolumeTool.GetFaceNodesIndices(), VISCOUS._ViscousBuilder.getSimplices(), SMESH.Controls.OverConstrainedFace.IsSatisfy(), SMESH.Controls.BareBorderFace.IsSatisfy(), _QuadFaceGrid.LoadGrid(), SMESH_MeshEditor.makeWalls(), StdMeshers_QuadToTriaAdaptor.Preparation(), and StdMeshers_Quadrangle_2D.Smooth().
{
SMDS_ElemIteratorPtr nIt = nodesIterator();
for ( int i = 0; nIt->more(); ++i )
if ( nIt->next() == node )
return i;
return -1;
}
| const SMDS_MeshNode* SMDS_MeshElement.GetNodeWrap | ( | const int | ind | ) | const [inherited] |
Return node by its index.
| ind | - node index |
| const | SMDS_MeshNode* - the node |
Index is wrapped if it is out of a valid range
Definition at line 116 of file SMDS_MeshElement.hxx.
Referenced by _MyEdgeIterator._MyEdgeIterator(), SMESH_MeshEditor.GetLinkedNodes(), and SMESH_MeshEditor.makeWalls().
{ return GetNode( WrappedIndex( ind )); }
| LongType SMDS_MeshElement.getshapeId | ( | ) | const [inherited] |
Definition at line 144 of file SMDS_MeshElement.hxx.
Referenced by SMESHDS_SubMesh.AddElement(), SMESHDS_SubMesh.AddNode(), areNodesBound(), SMESH_MesherHelper.CheckNodeU(), SMESH_MesherHelper.CheckNodeUV(), StdMeshers_QuadToTriaAdaptor.Compute2ndPart(), SMESH_MeshEditor.ConvertToQuadratic(), SMESH_Pattern.createElements(), SMESH_MeshEditor.DeleteDiag(), StdMeshers_ProjectionUtils.FindMatchingNodesOnFaces(), VISCOUS._ViscousBuilder.findNeiborsOnEdge(), SMESH_MeshEditor.FindShape(), SMESH_MesherHelper.GetMediumNode(), StdMeshers_PrismAsBlock.GetNodeColumn(), SMESH_MesherHelper.GetNodeU(), SMESH_MesherHelper.GetNodeUV(), SMESH_ProxyMesh.GetProxyNode(), SMESH_Mesh_i.GetShapeID(), SMESH_MesherHelper.GetSubShapeByNode(), StdMeshers_FaceSide.GetUVPtStruct(), StdMeshers_PrismAsBlock.Init(), SMESH_Algo.IsReversedSubMesh(), VISCOUS._ViscousBuilder.makeLayer(), StdMeshers_QuadToTriaAdaptor.MergePiramids(), SMESH.SMESH_Group.Remove(), SMESHDS_SubMesh.RemoveElement(), SMESHDS_SubMesh.RemoveNode(), SMESHDS_Mesh.RemoveNode(), SMESH_MeshEditor.removeQuadElem(), VISCOUS._ViscousBuilder.setEdgeData(), StdMeshers_Quadrangle_2D.Smooth(), and SMESHDS_Mesh.UnSetNodeOnShape().
{return myShapeId; }
| SMDSAbs_ElementType SMDS_MeshFace::GetType | ( | ) | const [virtual, inherited] |
Return the type of the current element.
Implements SMDS_MeshElement.
Reimplemented in SMDS_FaceOfEdges, and SMDS_PolygonalFaceOfNodes.
Definition at line 27 of file SMDS_MeshFace.cxx.
References SMDSAbs_Face.
{
return SMDSAbs_Face;
}
| int SMDS_MeshElement.getVtkId | ( | ) | const [inherited] |
Definition at line 146 of file SMDS_MeshElement.hxx.
Referenced by SMDS_Mesh.AddEdgeWithID(), SMDS_Mesh.AddFaceWithID(), SMDS_MeshNode.AddInverseElement(), SMDS_Mesh.AddPolygonalFaceWithID(), SMDS_Mesh.AddPolyhedralVolumeWithID(), SMDS_Mesh.AddVolumeFromVtkIdsWithID(), SMDS_Mesh.AddVolumeWithID(), ChangeApex(), SMDS_VtkVolume.ChangeNodes(), ChangeNodes(), SMDS_VtkEdge.ChangeNodes(), SMDS_Mesh.Clear(), SMDS_Mesh.createQuadrangle(), SMDS_Mesh.createTriangle(), SMESH_MeshEditor.DoubleNodesOnGroupBoundaries(), SMDS_UnstructuredGrid.extrudeVolumeFromFace(), SMDS_Mesh.FindEdgeOrCreate(), SMESH_VisualObjDef.GetNodeVTKId(), SMESH.Controls.AspectRatio3D.GetValue(), SMDS_VtkVolume.IsMediumNode(), IsMediumNode(), SMDS_VtkEdge.IsMediumNode(), operator<(), SMDS_Mesh.registerElement(), SMDS_Mesh.RemoveFreeElement(), SMDS_MeshNode.RemoveInverseElement(), SMDS_MeshElementIDFactory.SetInVtkGrid(), and SMDS_Mesh.~SMDS_Mesh().
{ return myVtkID; }
| vtkIdType SMDS_VtkFace::GetVtkType | ( | ) | const [virtual] |
Reimplemented from SMDS_MeshFace.
Definition at line 240 of file SMDS_VtkFace.cxx.
References SMDS_Mesh._meshList, and ex11_grid3partition.grid.
{
vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
vtkIdType aVtkType = grid->GetCellType(this->myVtkID);
return aVtkType;
}
| void SMDS_MeshElement::init | ( | int | id = -1, |
| ShortType | meshId = -1, |
||
| LongType | shapeId = 0 |
||
| ) | [protected, virtual, inherited] |
Definition at line 48 of file SMDS_MeshElement.cxx.
Referenced by init(), SMDS_VtkEdge.init(), and initPoly().
{
myID = id;
myMeshId = meshId;
myShapeId = shapeId;
myIdInShape = -1;
}
| void SMDS_VtkFace::init | ( | std::vector< vtkIdType > | nodeIds, |
| SMDS_Mesh * | mesh | ||
| ) |
Definition at line 44 of file SMDS_VtkFace.cxx.
References SMDS_Mesh.getGrid(), SMDS_Mesh.getMeshId(), ex11_grid3partition.grid, SMDS_MeshElement.init(), and SMDS_Mesh.setMyModified().
Referenced by SMDS_Mesh.AddFaceWithID(), SMDS_Mesh.createQuadrangle(), and SMDS_Mesh.createTriangle().
{
SMDS_MeshFace::init();
vtkUnstructuredGrid* grid = mesh->getGrid();
myMeshId = mesh->getMeshId();
vtkIdType aType = VTK_TRIANGLE;
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_POLYGON;
break;
}
myVtkID = grid->InsertNextLinkedCell(aType, nodeIds.size(), &nodeIds[0]);
mesh->setMyModified();
//MESSAGE("SMDS_VtkFace::init myVtkID " << myVtkID);
}
| void SMDS_VtkFace::initPoly | ( | std::vector< vtkIdType > | nodeIds, |
| SMDS_Mesh * | mesh | ||
| ) |
Definition at line 73 of file SMDS_VtkFace.cxx.
References SMDS_Mesh.getGrid(), SMDS_Mesh.getMeshId(), ex11_grid3partition.grid, SMDS_MeshElement.init(), and SMDS_Mesh.setMyModified().
Referenced by SMDS_Mesh.AddPolygonalFaceWithID().
{
SMDS_MeshFace::init();
vtkUnstructuredGrid* grid = mesh->getGrid();
myMeshId = mesh->getMeshId();
myVtkID = grid->InsertNextLinkedCell(VTK_POLYGON, nodeIds.size(), &nodeIds[0]);
mesh->setMyModified();
}
| SMDS_ElemIteratorPtr SMDS_VtkFace::interlacedNodesElemIterator | ( | ) | const [virtual] |
virtual, redefined in vtkEdge, vtkFace and vtkVolume classes
Reimplemented from SMDS_MeshElement.
Definition at line 265 of file SMDS_VtkFace.cxx.
References SMDS_Mesh._meshList.
Referenced by SMESH_MeshEditor.FindFaceInSet(), SMESH_MeshEditor.FindFreeBorder(), SMESH.Controls.Length2D.GetValues(), SMESH_MeshEditor.InsertNodesIntoLink(), and SMESH_MeshEditor.SewFreeBorder().
{
return SMDS_ElemIteratorPtr(new SMDS_VtkCellIteratorToUNV(SMDS_Mesh::_meshList[myMeshId], myVtkID, GetEntityType()));
}
| bool SMDS_VtkFace::IsMediumNode | ( | const SMDS_MeshNode * | node | ) | const [virtual] |
Reimplemented from SMDS_MeshElement.
Definition at line 176 of file SMDS_VtkFace.cxx.
References SMDS_Mesh._meshList, SMDS_MeshElement.getVtkId(), ex11_grid3partition.grid, and MESSAGE.
{
vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
vtkIdType aVtkType = grid->GetCellType(this->myVtkID);
int rankFirstMedium = 0;
switch (aVtkType)
{
case VTK_QUADRATIC_TRIANGLE:
rankFirstMedium = 3; // medium nodes are of rank 3,4,5
break;
case VTK_QUADRATIC_QUAD:
rankFirstMedium = 4; // medium nodes are of rank 4,5,6,7
break;
default:
//MESSAGE("wrong element type " << aVtkType);
return false;
}
vtkIdType npts = 0;
vtkIdType* pts = 0;
grid->GetCellPoints(myVtkID, npts, pts);
vtkIdType nodeId = node->getVtkId();
for (int rank = 0; rank < npts; rank++)
{
if (pts[rank] == nodeId)
{
//MESSAGE("rank " << rank << " is medium node " << (rank < rankFirstMedium));
if (rank < rankFirstMedium)
return false;
else
return true;
}
}
//throw SALOME_Exception(LOCALIZED("node does not belong to this element"));
MESSAGE("======================================================");
MESSAGE("= IsMediumNode: node does not belong to this element =");
MESSAGE("======================================================");
return false;
}
| bool SMDS_VtkFace::IsPoly | ( | ) | const [virtual] |
Reimplemented from SMDS_MeshElement.
Definition at line 169 of file SMDS_VtkFace.cxx.
References SMDS_Mesh._meshList, and ex11_grid3partition.grid.
{
vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
vtkIdType aVtkType = grid->GetCellType(this->myVtkID);
return (aVtkType == VTK_POLYGON);
}
| bool SMDS_VtkFace::IsQuadratic | ( | ) | const [virtual] |
Reimplemented from SMDS_MeshElement.
Definition at line 153 of file SMDS_VtkFace.cxx.
References SMDS_Mesh._meshList, and ex11_grid3partition.grid.
{
vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
vtkIdType aVtkType = grid->GetCellType(this->myVtkID);
// TODO quadratic polygons ?
switch (aVtkType)
{
case VTK_QUADRATIC_TRIANGLE:
case VTK_QUADRATIC_QUAD:
return true;
break;
default:
return false;
}
}
Return true if index of node is valid (0 <= ind < NbNodes())
| ind | - node index |
| bool | - index check result |
Definition at line 220 of file SMDS_MeshElement.cxx.
{
return ( ind>-1 && ind<NbNodes() );
}
| int SMDS_MeshElement::NbCornerNodes | ( | ) | const [virtual, inherited] |
Return number of nodes excluding medium ones.
Definition at line 253 of file SMDS_MeshElement.cxx.
Referenced by SMESH_Pattern.Apply(), StdMeshers_QuadToTriaAdaptor.CheckIntersection(), StdMeshers_Hexa_3D.Compute(), StdMeshers_QuadToTriaAdaptor.Compute2ndPart(), SMESH_MeshEditor.ConvertFromQuadratic(), SMDS_Mesh.FindElement(), SMESH_MesherHelper.FixQuadraticElements(), VISCOUS._ViscousBuilder.getSimplices(), getTriangles(), SMDS_VolumeTool.IsLinked(), SMESH.Controls.CoplanarFaces.IsSatisfy(), VISCOUS._ViscousBuilder.limitStepSize(), SMESH_Pattern.Load(), VISCOUS._ViscousBuilder.makeGroupOfLE(), VISCOUS._ViscousBuilder.makeLayer(), StdMeshers_QuadToTriaAdaptor.MergeAdjacent(), StdMeshers_QuadToTriaAdaptor.Preparation(), VISCOUS._ViscousBuilder.refine(), SMESH_MeshEditor.removeQuadElem(), SMDS_VolumeTool.Set(), and StdMeshers_Quadrangle_2D.Smooth().
{
return IsQuadratic() ? NbNodes() - NbEdges() : NbNodes();
}
| int SMDS_VtkFace::NbEdges | ( | ) | const [virtual] |
Return the number of edges owned by or linked with the current element.
Reimplemented from SMDS_MeshElement.
Definition at line 106 of file SMDS_VtkFace.cxx.
References SMDS_Mesh._meshList, and ex11_grid3partition.grid.
{
// TODO quadratic polygons ?
vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
vtkIdType aVtkType = grid->GetCellType(this->myVtkID);
int nbEdges = 3;
switch (aVtkType)
{
case VTK_TRIANGLE:
case VTK_QUADRATIC_TRIANGLE:
nbEdges = 3;
break;
case VTK_QUAD:
case VTK_QUADRATIC_QUAD:
nbEdges = 4;
break;
case VTK_POLYGON:
default:
nbEdges = grid->GetCell(myVtkID)->GetNumberOfPoints();
break;
}
return nbEdges;
}
| int SMDS_VtkFace::NbFaces | ( | ) | const [virtual] |
Return the number of faces owned by or linked with the current element.
Reimplemented from SMDS_MeshElement.
Definition at line 130 of file SMDS_VtkFace.cxx.
{
return 1;
}
| int SMDS_VtkFace::NbNodes | ( | ) | const [virtual] |
Return The number of nodes owned by the current element.
Reimplemented from SMDS_MeshElement.
Definition at line 135 of file SMDS_VtkFace.cxx.
References SMDS_Mesh._meshList, and ex11_grid3partition.grid.
{
vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
int nbPoints = grid->GetCell(myVtkID)->GetNumberOfPoints();
return nbPoints;
}
| SMDS_ElemIteratorPtr SMDS_MeshElement::nodesIterator | ( | ) | const [inherited] |
Create an iterator which iterate on nodes owned by the element.
This method call elementsIterator().
Definition at line 71 of file SMDS_MeshElement.cxx.
References SMDSAbs_Node.
Referenced by SMDS_Mesh.addChildrenWithNodes(), SMESH_MeshEditor_i.AddPolyhedralVolumeByFaces(), SMESH_Pattern.Apply(), SMESH_Mesh_i.BaryCenter(), SMESH_VisualObjDef.buildElemPrs(), centroidalSmooth(), SMDS_Mesh.ChangeElementNodes(), SMDS_Mesh.ChangePolyhedronNodes(), StdMeshers_QuadToTriaAdaptor.Compute2ndPart(), SMESH_Gen_i.ConcatenateCommon(), SMESH_MeshEditor.ConvertToQuadratic(), SMESH_Gen_i.CopyMesh(), SMESH_Mesh_i.CreateDimGroup(), SMESH_Pattern.createElements(), SMESH_MeshEditor.CreateFlatElementsOnFacesGroups(), SMESHGUI_CuttingOfQuadsDlg.displayPreview(), SMESHGUI_CreatePolyhedralVolumeDlg.displaySimulation(), SMESH_MeshEditor.DoubleNodes(), SMESH_MeshEditor.doubleNodes(), SMESH_MeshEditor.DoubleNodesInRegion(), enlargeBoundingBox(), SMESH_MeshEditor.ExtrusionSweep(), SMDS_Mesh.FindEdge(), SMDS_Mesh.FindFace(), SMESH_MeshEditor.FindFreeBorder(), SMESHGUI_MergeDlg.FindGravityCenter(), SMESH_MeshEditor.FindShape(), getAngle(), SMESH.Controls.FreeEdges.GetBoreders(), SMESH_VisualObjDef.GetEdgeNodes(), SMESH_subMesh_i.GetElementsByType(), getFinitElements(), SMESH_MeshEditor.GetLinkedNodes(), getLinks(), getNodesFromElems(), GetNodesFromTwoTria(), SMESH.getNormale(), SMESH_subMesh_i.GetNumberOfNodes(), SMESH.Controls.NumericalFunctor.GetPoints(), getQuadrangleNodes(), SMESH_Mesh_i.GetSubMeshNodesId(), SMESH_ElementSearcherImpl.getTolerance(), SMESH.Controls.MultiConnection2D.GetValue(), SMESH.Controls.MultiConnection2D.GetValues(), SMESH.Controls.Length2D.GetValues(), SMESHGUI_ElemInfo.gravityCenter(), SMESHGUI_TreeElemInfo.information(), SMESHGUI_SimpleElemInfo.information(), SMESH_MeshEditor.InsertNodesIntoLink(), SMESH_MeshEditor.InverseDiag(), SMESH_MeshEditor.isOut(), SMESH_Algo.IsReversedSubMesh(), SMESH.Controls.FreeFaces.IsSatisfy(), SMESH.Controls.FreeEdges.IsSatisfy(), StdMeshers_Penta_3D.LoadIJNodes(), SMESH_MeshEditor.MakeExtrElements(), StdMeshers_Penta_3D.MakeMeshOnFxy1(), SMESH_Pattern.makePolyElements(), SMESHGUI_SingleEditDlg.onTextChange(), DriverDAT_W_SMDS_Mesh.Perform(), StdMeshers_QuadToTriaAdaptor.Preparation(), SMESH.Controls.ElementsOnShape.process(), SMESH.Controls.ElementsOnSurface.process(), SMESH_MeshEditor.QuadToTri(), VISCOUS._ViscousBuilder.refine(), SMDS_Mesh.RemoveFreeElement(), SMESHGUI_WhatIsDlg.SelectionIntoArgument(), SMDS_VolumeTool.Set(), SMDS_MeshElementIDFactory.SetInVtkGrid(), SMESH_MeshEditor.SewFreeBorder(), VISCOUS._ViscousBuilder.shrink(), SortableElement.SortableElement(), StdMeshers_MEFISTO_2D.StoreResult(), SMESH_MeshEditor_i.storeResult(), VISCOUS._Shrinker1D.SwapSrcTgtNodes(), and SMESH_MeshEditor.Transform().
{
return elementsIterator(SMDSAbs_Node);
}
| SMDS_ElemIteratorPtr SMDS_VtkFace::nodesIteratorToUNV | ( | ) | const [virtual] |
virtual, redefined in vtkEdge, vtkFace and vtkVolume classes
Reimplemented from SMDS_MeshElement.
Definition at line 260 of file SMDS_VtkFace.cxx.
References SMDS_Mesh._meshList.
{
return SMDS_ElemIteratorPtr(new SMDS_VtkCellIteratorToUNV(SMDS_Mesh::_meshList[myMeshId], myVtkID, GetEntityType()));
}
| void SMDS_VtkFace::Print | ( | std::ostream & | OS | ) | const [virtual] |
Reimplemented from SMDS_MeshElement.
Definition at line 101 of file SMDS_VtkFace.cxx.
{
OS << "face <" << GetID() << "> : ";
}
| void SMDS_MeshElement.setId | ( | int | id | ) | [protected, inherited] |
Definition at line 149 of file SMDS_MeshElement.hxx.
{myID = id; }
| void SMDS_MeshElement.setIdInShape | ( | int | id | ) | [protected, inherited] |
Definition at line 151 of file SMDS_MeshElement.hxx.
Referenced by SMESHDS_SubMesh.AddElement(), SMESHDS_SubMesh.AddNode(), SMESHDS_SubMesh.compactList(), SMESHDS_SubMesh.RemoveElement(), and SMESHDS_SubMesh.RemoveNode().
{ myIdInShape = id; }
| void SMDS_MeshElement.setShapeId | ( | LongType | shapeId | ) | [protected, inherited] |
Definition at line 150 of file SMDS_MeshElement.hxx.
Referenced by SMESHDS_SubMesh.AddElement(), SMESHDS_SubMesh.AddNode(), SMESHDS_SubMesh.RemoveElement(), and SMESHDS_SubMesh.RemoveNode().
{myShapeId = shapeId; }
| void SMDS_MeshElement.setVtkId | ( | int | vtkId | ) | [protected, inherited] |
Reimplemented in SMDS_MeshNode.
Definition at line 152 of file SMDS_MeshElement.hxx.
Referenced by SMDS_MeshElementIDFactory.SetInVtkGrid().
{ myVtkID = vtkId; }
| virtual bool SMDS_MeshCell.vtkOrder | ( | const SMDS_MeshNode * | nodes[], |
| const int | nbNodes | ||
| ) | [virtual, inherited] |
Reimplemented in SMDS_VtkVolume.
Definition at line 36 of file SMDS_MeshCell.hxx.
Referenced by SMDS_Mesh.ChangeElementNodes().
{return true; }
Return a valid node index, fixing the given one if necessary.
| ind | - node index |
| int | - valid node index |
Definition at line 130 of file SMDS_MeshElement.hxx.
References SMESH_test.ind.
| std::ostream& operator<< | ( | std::ostream & | OS, |
| const SMDS_MeshElement * | ME | ||
| ) | [friend, inherited] |
Definition at line 61 of file SMDS_MeshElement.cxx.
{
ME->Print(OS);
return OS;
}
friend class SMDS_Mesh [friend, inherited] |
Reimplemented in SMDS_MeshNode.
Definition at line 94 of file SMDS_MeshElement.hxx.
friend class SMDS_MeshElementIDFactory [friend, inherited] |
Definition at line 97 of file SMDS_MeshElement.hxx.
| bool SMDS_MeshElementIDFactory::BindID | ( | int | ID, |
| SMDS_MeshElement * | elem | ||
| ) | [friend, inherited] |
friend class SMESHDS_Mesh [friend, inherited] |
Reimplemented in SMDS_MeshNode.
Definition at line 95 of file SMDS_MeshElement.hxx.
friend class SMESHDS_SubMesh [friend, inherited] |
Definition at line 96 of file SMDS_MeshElement.hxx.
int SMDS_MeshElement.myID [protected, inherited] |
Element index in vector SMDS_Mesh.myNodes or SMDS_Mesh.myCells.
Definition at line 159 of file SMDS_MeshElement.hxx.
Referenced by SMDS_MeshNode.Print(), and SMDS_Mesh.registerElement().
int SMDS_MeshElement.myIdInShape [protected, inherited] |
Element index in SMESHDS_SubMesh vector.
Definition at line 167 of file SMDS_MeshElement.hxx.
ShortType SMDS_MeshElement.myMeshId [protected, inherited] |
SMDS_Mesh identification in SMESH.
Definition at line 163 of file SMDS_MeshElement.hxx.
Referenced by SMDS_MeshNode.AddInverseElement(), SMDS_VtkVolume.ChangeNodes(), SMDS_MeshNode.ClearInverseElements(), SMDS_VtkVolume.elementsIterator(), SMDS_MeshNode.elementsIterator(), SMDS_MeshNode.emptyInverseElements(), SMDS_MeshNode.getCoord(), SMDS_VtkVolume.GetEntityType(), SMDS_VtkVolume.GetFaceNode(), SMDS_MeshNode.GetInverseElementIterator(), SMDS_Mesh.getMeshId(), SMDS_VtkVolume.GetQuantities(), SMDS_VtkVolume.GetVtkType(), SMDS_VtkVolume.init(), SMDS_MeshNode.init(), SMDS_VtkVolume.interlacedNodesElemIterator(), SMDS_VtkVolume.IsMediumNode(), SMDS_VtkVolume.IsPoly(), SMDS_VtkVolume.IsQuadratic(), SMDS_VtkVolume.NbEdges(), SMDS_VtkVolume.NbFaceNodes(), SMDS_VtkVolume.NbFaces(), SMDS_MeshNode.NbInverseElements(), SMDS_VtkVolume.NbNodes(), SMDS_VtkVolume.NbUniqueNodes(), SMDS_VtkVolume.nodesIteratorToUNV(), SMDS_Mesh.registerElement(), SMDS_MeshNode.RemoveInverseElement(), SMDS_MeshNode.setXYZ(), SMDS_VtkVolume.uniqueNodesIterator(), and SMDS_VtkVolume.vtkOrder().
LongType SMDS_MeshElement.myShapeId [protected, inherited] |
SubShape and SubMesh identification in SMESHDS.
Definition at line 165 of file SMDS_MeshElement.hxx.
int SMDS_MeshElement.myVtkID [protected, inherited] |
index in vtkUnstructuredGrid
Definition at line 161 of file SMDS_MeshElement.hxx.
Referenced by SMDS_MeshNode.AddInverseElement(), SMDS_VtkVolume.ChangeNodes(), SMDS_MeshNode.ClearInverseElements(), SMDS_VtkVolume.elementsIterator(), SMDS_MeshNode.elementsIterator(), SMDS_MeshNode.emptyInverseElements(), SMDS_MeshNode.getCoord(), SMDS_VtkVolume.GetEntityType(), SMDS_VtkVolume.GetFaceNode(), SMDS_MeshNode.GetInverseElementIterator(), SMDS_VtkVolume.GetQuantities(), SMDS_VtkVolume.GetVtkType(), SMDS_VtkVolume.init(), SMDS_MeshNode.init(), SMDS_VtkVolume.initPoly(), SMDS_VtkVolume.interlacedNodesElemIterator(), SMDS_VtkVolume.IsMediumNode(), SMDS_VtkVolume.IsPoly(), SMDS_VtkVolume.IsQuadratic(), SMDS_VtkVolume.NbEdges(), SMDS_VtkVolume.NbFaceNodes(), SMDS_VtkVolume.NbFaces(), SMDS_MeshNode.NbInverseElements(), SMDS_VtkVolume.NbNodes(), SMDS_VtkVolume.NbUniqueNodes(), SMDS_VtkVolume.nodesIteratorToUNV(), SMDS_MeshNode.RemoveInverseElement(), SMDS_MeshNode.setVtkId(), SMDS_MeshNode.setXYZ(), SMDS_MeshCell.SMDS_MeshCell(), SMDS_VtkVolume.uniqueNodesIterator(), and SMDS_VtkVolume.vtkOrder().
int SMDS_MeshCell::nbCells = 0 [static, inherited] |
Definition at line 38 of file SMDS_MeshCell.hxx.
Referenced by SMDS_MeshCell.SMDS_MeshCell(), and SMDS_MeshCell.~SMDS_MeshCell().