X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHDS%2FSMESHDS_Command.cxx;h=8ce255c7ff741894cf12305fa55fa4a91fb56eb5;hp=4e7dc3f3bfd0a89df0d86a2dc43224acecf9404f;hb=64c772da5a9dd285f16f1f7efa07bb4c7fbdd4c3;hpb=e4737e85f0da6d3f90fd08f6be1c2825195fe16f diff --git a/src/SMESHDS/SMESHDS_Command.cxx b/src/SMESHDS/SMESHDS_Command.cxx index 4e7dc3f3b..8ce255c7f 100644 --- a/src/SMESHDS/SMESHDS_Command.cxx +++ b/src/SMESHDS/SMESHDS_Command.cxx @@ -17,7 +17,7 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // // @@ -33,7 +33,7 @@ using namespace std; //======================================================================= -//function : +//function : Constructor //purpose : //======================================================================= SMESHDS_Command::SMESHDS_Command(const SMESHDS_CommandType aType):myType(aType), @@ -41,6 +41,14 @@ myNumber(0) { } +//======================================================================= +//function : Destructor +//purpose : +//======================================================================= +SMESHDS_Command::~SMESHDS_Command() +{ +} + //======================================================================= //function : //purpose : @@ -224,6 +232,57 @@ void SMESHDS_Command::AddVolume(int NewVolID, myNumber++; } +//======================================================================= +//function : AddPolygonalFace +//purpose : +//======================================================================= +void SMESHDS_Command::AddPolygonalFace (const int ElementID, + std::vector nodes_ids) +{ + if (!myType == SMESHDS_AddPolygon) { + MESSAGE("SMESHDS_Command::AddPolygonalFace : Bad Type"); + return; + } + myIntegers.push_back(ElementID); + + int i, nbNodes = nodes_ids.size(); + myIntegers.push_back(nbNodes); + for (i = 0; i < nbNodes; i++) { + myIntegers.push_back(nodes_ids[i]); + } + + myNumber++; +} + +//======================================================================= +//function : AddPolyhedralVolume +//purpose : +//======================================================================= +void SMESHDS_Command::AddPolyhedralVolume (const int ElementID, + std::vector nodes_ids, + std::vector quantities) +{ + if (!myType == SMESHDS_AddPolyhedron) { + MESSAGE("SMESHDS_Command::AddPolyhedralVolume : Bad Type"); + return; + } + myIntegers.push_back(ElementID); + + int i, nbNodes = nodes_ids.size(); + myIntegers.push_back(nbNodes); + for (i = 0; i < nbNodes; i++) { + myIntegers.push_back(nodes_ids[i]); + } + + int nbFaces = quantities.size(); + myIntegers.push_back(nbFaces); + for (i = 0; i < nbFaces; i++) { + myIntegers.push_back(quantities[i]); + } + + myNumber++; +} + //======================================================================= //function : //purpose : @@ -263,7 +322,7 @@ void SMESHDS_Command::ChangeElementNodes(int ElementID, int nodes[], int nbnodes { if (!myType == SMESHDS_ChangeElementNodes) { - MESSAGE("SMESHDS_Command::RemoveElement : Bad Type"); + MESSAGE("SMESHDS_Command::ChangeElementNodes : Bad Type"); return; } myIntegers.push_back(ElementID); @@ -274,6 +333,36 @@ void SMESHDS_Command::ChangeElementNodes(int ElementID, int nodes[], int nbnodes myNumber++; } +//======================================================================= +//function : ChangePolyhedronNodes +//purpose : +//======================================================================= +void SMESHDS_Command::ChangePolyhedronNodes (const int ElementID, + std::vector nodes_ids, + std::vector quantities) +{ + if (myType != SMESHDS_ChangePolyhedronNodes) + { + MESSAGE("SMESHDS_Command::ChangePolyhedronNodes : Bad Type"); + return; + } + myIntegers.push_back(ElementID); + + int i, nbNodes = nodes_ids.size(); + myIntegers.push_back(nbNodes); + for (i = 0; i < nbNodes; i++) { + myIntegers.push_back(nodes_ids[i]); + } + + int nbFaces = quantities.size(); + myIntegers.push_back(nbFaces); + for (i = 0; i < nbFaces; i++) { + myIntegers.push_back(quantities[i]); + } + + myNumber++; +} + //======================================================================= //function : Renumber //purpose : @@ -327,3 +416,199 @@ const list < double >&SMESHDS_Command::GetCoords() { return myReals; } + + +//******************************************************************** +//***** Methods for quadratic elements ****** +//******************************************************************** + +//======================================================================= +//function : AddEdge +//purpose : +//======================================================================= +void SMESHDS_Command::AddEdge(int NewEdgeID, int n1, int n2, int n12) +{ + if (!myType == SMESHDS_AddQuadEdge) { + MESSAGE("SMESHDS_Command::AddEdge : Bad Type"); + return; + } + myIntegers.push_back(NewEdgeID); + myIntegers.push_back(n1); + myIntegers.push_back(n2); + myIntegers.push_back(n12); + myNumber++; +} + +//======================================================================= +//function : AddFace +//purpose : +//======================================================================= +void SMESHDS_Command::AddFace(int NewFaceID, + int n1, int n2, int n3, + int n12, int n23, int n31) +{ + if (!myType == SMESHDS_AddQuadTriangle) { + MESSAGE("SMESHDS_Command::AddFace : Bad Type"); + return; + } + myIntegers.push_back(NewFaceID); + myIntegers.push_back(n1); + myIntegers.push_back(n2); + myIntegers.push_back(n3); + myIntegers.push_back(n12); + myIntegers.push_back(n23); + myIntegers.push_back(n31); + myNumber++; +} + +//======================================================================= +//function : AddFace +//purpose : +//======================================================================= +void SMESHDS_Command::AddFace(int NewFaceID, + int n1, int n2, int n3, int n4, + int n12, int n23, int n34, int n41) +{ + if (!myType == SMESHDS_AddQuadQuadrangle) { + MESSAGE("SMESHDS_Command::AddFace : Bad Type"); + return; + } + myIntegers.push_back(NewFaceID); + myIntegers.push_back(n1); + myIntegers.push_back(n2); + myIntegers.push_back(n3); + myIntegers.push_back(n4); + myIntegers.push_back(n12); + myIntegers.push_back(n23); + myIntegers.push_back(n34); + myIntegers.push_back(n41); + myNumber++; +} + +//======================================================================= +//function : AddVolume +//purpose : +//======================================================================= +void SMESHDS_Command::AddVolume(int NewVolID, int n1, int n2, int n3, int n4, + int n12, int n23, int n31, + int n14, int n24, int n34) +{ + if (!myType == SMESHDS_AddQuadTetrahedron) { + MESSAGE("SMESHDS_Command::AddVolume : Bad Type"); + return; + } + myIntegers.push_back(NewVolID); + myIntegers.push_back(n1); + myIntegers.push_back(n2); + myIntegers.push_back(n3); + myIntegers.push_back(n4); + myIntegers.push_back(n12); + myIntegers.push_back(n23); + myIntegers.push_back(n31); + myIntegers.push_back(n14); + myIntegers.push_back(n24); + myIntegers.push_back(n34); + myNumber++; +} + +//======================================================================= +//function : AddVolume +//purpose : +//======================================================================= +void SMESHDS_Command::AddVolume(int NewVolID, int n1, int n2, + int n3, int n4, int n5, + int n12, int n23, int n34, int n41, + int n15, int n25, int n35, int n45) +{ + if (!myType == SMESHDS_AddQuadPyramid) { + MESSAGE("SMESHDS_Command::AddVolume : Bad Type"); + return; + } + myIntegers.push_back(NewVolID); + myIntegers.push_back(n1); + myIntegers.push_back(n2); + myIntegers.push_back(n3); + myIntegers.push_back(n4); + myIntegers.push_back(n5); + myIntegers.push_back(n12); + myIntegers.push_back(n23); + myIntegers.push_back(n34); + myIntegers.push_back(n41); + myIntegers.push_back(n15); + myIntegers.push_back(n25); + myIntegers.push_back(n35); + myIntegers.push_back(n45); + myNumber++; +} + +//======================================================================= +//function : AddVolume +//purpose : +//======================================================================= +void SMESHDS_Command::AddVolume(int NewVolID, int n1, int n2, + int n3, int n4, int n5,int n6, + int n12, int n23, int n31, + int n45, int n56, int n64, + int n14, int n25, int n36) +{ + if (!myType == SMESHDS_AddQuadPentahedron) { + MESSAGE("SMESHDS_Command::AddVolume : Bad Type"); + return; + } + myIntegers.push_back(NewVolID); + myIntegers.push_back(n1); + myIntegers.push_back(n2); + myIntegers.push_back(n3); + myIntegers.push_back(n4); + myIntegers.push_back(n5); + myIntegers.push_back(n6); + myIntegers.push_back(n12); + myIntegers.push_back(n23); + myIntegers.push_back(n31); + myIntegers.push_back(n45); + myIntegers.push_back(n56); + myIntegers.push_back(n64); + myIntegers.push_back(n14); + myIntegers.push_back(n25); + myIntegers.push_back(n36); + myNumber++; +} + +//======================================================================= +//function : AddVolume +//purpose : +//======================================================================= +void SMESHDS_Command::AddVolume(int NewVolID, int n1, int n2, int n3, + int n4, int n5, int n6, int n7, int n8, + int n12, int n23, int n34, int n41, + int n56, int n67, int n78, int n85, + int n15, int n26, int n37, int n48) +{ + if (!myType == SMESHDS_AddQuadHexahedron) { + MESSAGE("SMESHDS_Command::AddVolume : Bad Type"); + return; + } + myIntegers.push_back(NewVolID); + myIntegers.push_back(n1); + myIntegers.push_back(n2); + myIntegers.push_back(n3); + myIntegers.push_back(n4); + myIntegers.push_back(n5); + myIntegers.push_back(n6); + myIntegers.push_back(n7); + myIntegers.push_back(n8); + myIntegers.push_back(n12); + myIntegers.push_back(n23); + myIntegers.push_back(n34); + myIntegers.push_back(n41); + myIntegers.push_back(n56); + myIntegers.push_back(n67); + myIntegers.push_back(n78); + myIntegers.push_back(n85); + myIntegers.push_back(n15); + myIntegers.push_back(n26); + myIntegers.push_back(n37); + myIntegers.push_back(n48); + myNumber++; +} +