X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMDS%2FSMDS_VolumeOfNodes.cxx;h=25c0bf567dee9412ea162930edff5233dbc6a181;hb=0febe018bcde111dc7aca1f3e44d4aa2995b59a2;hp=b2a7a547d16c27d8661691337256f4cee7294d0b;hpb=aa64a62c439d80eb0f306350bf50e5c97f49c383;p=modules%2Fsmesh.git diff --git a/src/SMDS/SMDS_VolumeOfNodes.cxx b/src/SMDS/SMDS_VolumeOfNodes.cxx index b2a7a547d..25c0bf567 100644 --- a/src/SMDS/SMDS_VolumeOfNodes.cxx +++ b/src/SMDS/SMDS_VolumeOfNodes.cxx @@ -19,23 +19,25 @@ // // See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -#include "utilities.h" #include "SMDS_VolumeOfNodes.hxx" #include "SMDS_MeshNode.hxx" +#include "utilities.h" + +using namespace std; /////////////////////////////////////////////////////////////////////////////// /// Create an hexahedron. node 1,2,3,4 and 5,6,7,8 are quadrangle and /// 5,1 and 7,3 are an edges. /////////////////////////////////////////////////////////////////////////////// SMDS_VolumeOfNodes::SMDS_VolumeOfNodes( - SMDS_MeshNode * node1, - SMDS_MeshNode * node2, - SMDS_MeshNode * node3, - SMDS_MeshNode * node4, - SMDS_MeshNode * node5, - SMDS_MeshNode * node6, - SMDS_MeshNode * node7, - SMDS_MeshNode * node8) + const SMDS_MeshNode * node1, + const SMDS_MeshNode * node2, + const SMDS_MeshNode * node3, + const SMDS_MeshNode * node4, + const SMDS_MeshNode * node5, + const SMDS_MeshNode * node6, + const SMDS_MeshNode * node7, + const SMDS_MeshNode * node8) { myNodes.resize(8); myNodes[0]=node1; @@ -49,10 +51,10 @@ SMDS_VolumeOfNodes::SMDS_VolumeOfNodes( } SMDS_VolumeOfNodes::SMDS_VolumeOfNodes( - SMDS_MeshNode * node1, - SMDS_MeshNode * node2, - SMDS_MeshNode * node3, - SMDS_MeshNode * node4) + const SMDS_MeshNode * node1, + const SMDS_MeshNode * node2, + const SMDS_MeshNode * node3, + const SMDS_MeshNode * node4) { myNodes.resize(4); myNodes[0]=node1; @@ -62,11 +64,11 @@ SMDS_VolumeOfNodes::SMDS_VolumeOfNodes( } SMDS_VolumeOfNodes::SMDS_VolumeOfNodes( - SMDS_MeshNode * node1, - SMDS_MeshNode * node2, - SMDS_MeshNode * node3, - SMDS_MeshNode * node4, - SMDS_MeshNode * node5) + const SMDS_MeshNode * node1, + const SMDS_MeshNode * node2, + const SMDS_MeshNode * node3, + const SMDS_MeshNode * node4, + const SMDS_MeshNode * node5) { myNodes.resize(5); myNodes[0]=node1; @@ -77,12 +79,12 @@ SMDS_VolumeOfNodes::SMDS_VolumeOfNodes( } SMDS_VolumeOfNodes::SMDS_VolumeOfNodes( - SMDS_MeshNode * node1, - SMDS_MeshNode * node2, - SMDS_MeshNode * node3, - SMDS_MeshNode * node4, - SMDS_MeshNode * node5, - SMDS_MeshNode * node6) + const SMDS_MeshNode * node1, + const SMDS_MeshNode * node2, + const SMDS_MeshNode * node3, + const SMDS_MeshNode * node4, + const SMDS_MeshNode * node5, + const SMDS_MeshNode * node6) { myNodes.resize(6); myNodes[0]=node1; @@ -92,6 +94,18 @@ SMDS_VolumeOfNodes::SMDS_VolumeOfNodes( myNodes[4]=node5; myNodes[5]=node6; } +bool SMDS_VolumeOfNodes::ChangeNodes(const SMDS_MeshNode* nodes[], + const int nbNodes) +{ + if (nbNodes < 4 || nbNodes > 8 || nbNodes == 7) + return false; + + myNodes.resize( nbNodes ); + for ( int i = 0; i < nbNodes; i++ ) + myNodes[ i ] = nodes [ i ]; + + return true; +} //======================================================================= //function : Print //purpose : @@ -115,6 +129,7 @@ int SMDS_VolumeOfNodes::NbFaces() const case 8: return 6; default: MESSAGE("invalid number of nodes"); } + return 0; } int SMDS_VolumeOfNodes::NbNodes() const @@ -132,36 +147,42 @@ int SMDS_VolumeOfNodes::NbEdges() const case 8: return 12; default: MESSAGE("invalid number of nodes"); } + return 0; } -SMDS_Iterator * SMDS_VolumeOfNodes:: +class SMDS_VolumeOfNodes_MyIterator:public SMDS_ElemIterator +{ + const vector& mySet; + int index; + public: + SMDS_VolumeOfNodes_MyIterator(const vector& s): + mySet(s),index(0) {} + + bool more() + { + return index - { - const vector& mySet; - int index; - public: - MyIterator(const vector& s):mySet(s),index(0) - {} - - bool more() - { - return index