00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #include "SMESHDS_Command.hxx"
00030
00031 #include "utilities.h"
00032
00033 using namespace std;
00034
00035
00036
00037
00038
00039 SMESHDS_Command::SMESHDS_Command(const SMESHDS_CommandType aType):myType(aType),
00040 myNumber(0)
00041 {
00042 }
00043
00044
00045
00046
00047
00048 SMESHDS_Command::~SMESHDS_Command()
00049 {
00050 }
00051
00052
00053
00054
00055
00056 void SMESHDS_Command::AddNode(int NewNodeID, double x, double y, double z)
00057 {
00058 if (!myType == SMESHDS_AddNode)
00059 {
00060 MESSAGE("SMESHDS_Command::AddNode : Bad Type");
00061 return;
00062 }
00063 myIntegers.push_back(NewNodeID);
00064 myReals.push_back(x);
00065 myReals.push_back(y);
00066 myReals.push_back(z);
00067 myNumber++;
00068 }
00069
00070
00071
00072
00073
00074 void SMESHDS_Command::MoveNode(int NodeID, double x, double y, double z)
00075 {
00076 if (!myType == SMESHDS_MoveNode)
00077 {
00078 MESSAGE("SMESHDS_Command::MoveNode : Bad Type");
00079 return;
00080 }
00081 myIntegers.push_back(NodeID);
00082 myReals.push_back(x);
00083 myReals.push_back(y);
00084 myReals.push_back(z);
00085 myNumber++;
00086 }
00087
00088
00089
00090
00091
00092 void SMESHDS_Command::Add0DElement(int New0DElementID, int idnode)
00093 {
00094 if (!myType == SMESHDS_Add0DElement)
00095 {
00096 MESSAGE("SMESHDS_Command::Add0DElement : Bad Type");
00097 return;
00098 }
00099 myIntegers.push_back(New0DElementID);
00100 myIntegers.push_back(idnode);
00101 myNumber++;
00102 }
00103
00104
00105
00106
00107
00108 void SMESHDS_Command::AddEdge(int NewEdgeID, int idnode1, int idnode2)
00109 {
00110 if (!myType == SMESHDS_AddEdge)
00111 {
00112 MESSAGE("SMESHDS_Command::AddEdge : Bad Type");
00113 return;
00114 }
00115 myIntegers.push_back(NewEdgeID);
00116 myIntegers.push_back(idnode1);
00117 myIntegers.push_back(idnode2);
00118 myNumber++;
00119 }
00120
00121
00122
00123
00124
00125 void SMESHDS_Command::AddFace(int NewFaceID,
00126 int idnode1, int idnode2, int idnode3)
00127 {
00128 if (!myType == SMESHDS_AddTriangle)
00129 {
00130 MESSAGE("SMESHDS_Command::AddFace : Bad Type");
00131 return;
00132 }
00133 myIntegers.push_back(NewFaceID);
00134 myIntegers.push_back(idnode1);
00135 myIntegers.push_back(idnode2);
00136 myIntegers.push_back(idnode3);
00137 myNumber++;
00138 }
00139
00140
00141
00142
00143
00144 void SMESHDS_Command::AddFace(int NewFaceID,
00145 int idnode1, int idnode2, int idnode3, int idnode4)
00146 {
00147 if (!myType == SMESHDS_AddQuadrangle)
00148 {
00149 MESSAGE("SMESHDS_Command::AddFace : Bad Type");
00150 return;
00151 }
00152 myIntegers.push_back(NewFaceID);
00153 myIntegers.push_back(idnode1);
00154 myIntegers.push_back(idnode2);
00155 myIntegers.push_back(idnode3);
00156 myIntegers.push_back(idnode4);
00157 myNumber++;
00158 }
00159
00160
00161
00162
00163
00164 void SMESHDS_Command::AddVolume(int NewVolID,
00165 int idnode1, int idnode2, int idnode3, int idnode4)
00166 {
00167 if (!myType == SMESHDS_AddTetrahedron)
00168 {
00169 MESSAGE("SMESHDS_Command::AddVolume : Bad Type");
00170 return;
00171 }
00172 myIntegers.push_back(NewVolID);
00173 myIntegers.push_back(idnode1);
00174 myIntegers.push_back(idnode2);
00175 myIntegers.push_back(idnode3);
00176 myIntegers.push_back(idnode4);
00177 myNumber++;
00178 }
00179
00180
00181
00182
00183
00184 void SMESHDS_Command::AddVolume(int NewVolID,
00185 int idnode1, int idnode2, int idnode3, int idnode4, int idnode5)
00186 {
00187 if (!myType == SMESHDS_AddPyramid)
00188 {
00189 MESSAGE("SMESHDS_Command::AddVolume : Bad Type");
00190 return;
00191 }
00192 myIntegers.push_back(NewVolID);
00193 myIntegers.push_back(idnode1);
00194 myIntegers.push_back(idnode2);
00195 myIntegers.push_back(idnode3);
00196 myIntegers.push_back(idnode4);
00197 myIntegers.push_back(idnode5);
00198 myNumber++;
00199 }
00200
00201
00202
00203
00204
00205 void SMESHDS_Command::AddVolume(int NewVolID,
00206 int idnode1,
00207 int idnode2, int idnode3, int idnode4, int idnode5, int idnode6)
00208 {
00209 if (!myType == SMESHDS_AddPrism)
00210 {
00211 MESSAGE("SMESHDS_Command::AddVolume : Bad Type");
00212 return;
00213 }
00214 myIntegers.push_back(NewVolID);
00215 myIntegers.push_back(idnode1);
00216 myIntegers.push_back(idnode2);
00217 myIntegers.push_back(idnode3);
00218 myIntegers.push_back(idnode4);
00219 myIntegers.push_back(idnode5);
00220 myIntegers.push_back(idnode6);
00221 myNumber++;
00222 }
00223
00224
00225
00226
00227
00228 void SMESHDS_Command::AddVolume(int NewVolID,
00229 int idnode1,
00230 int idnode2,
00231 int idnode3,
00232 int idnode4, int idnode5, int idnode6, int idnode7, int idnode8)
00233 {
00234 if (!myType == SMESHDS_AddHexahedron)
00235 {
00236 MESSAGE("SMESHDS_Command::AddVolume : Bad Type");
00237 return;
00238 }
00239 myIntegers.push_back(NewVolID);
00240 myIntegers.push_back(idnode1);
00241 myIntegers.push_back(idnode2);
00242 myIntegers.push_back(idnode3);
00243 myIntegers.push_back(idnode4);
00244 myIntegers.push_back(idnode5);
00245 myIntegers.push_back(idnode6);
00246 myIntegers.push_back(idnode7);
00247 myIntegers.push_back(idnode8);
00248 myNumber++;
00249 }
00250
00251
00252
00253
00254
00255 void SMESHDS_Command::AddPolygonalFace (const int ElementID,
00256 std::vector<int> nodes_ids)
00257 {
00258 if (!myType == SMESHDS_AddPolygon) {
00259 MESSAGE("SMESHDS_Command::AddPolygonalFace : Bad Type");
00260 return;
00261 }
00262 myIntegers.push_back(ElementID);
00263
00264 int i, nbNodes = nodes_ids.size();
00265 myIntegers.push_back(nbNodes);
00266 for (i = 0; i < nbNodes; i++) {
00267 myIntegers.push_back(nodes_ids[i]);
00268 }
00269
00270 myNumber++;
00271 }
00272
00273
00274
00275
00276
00277 void SMESHDS_Command::AddPolyhedralVolume (const int ElementID,
00278 std::vector<int> nodes_ids,
00279 std::vector<int> quantities)
00280 {
00281 if (!myType == SMESHDS_AddPolyhedron) {
00282 MESSAGE("SMESHDS_Command::AddPolyhedralVolume : Bad Type");
00283 return;
00284 }
00285 myIntegers.push_back(ElementID);
00286
00287 int i, nbNodes = nodes_ids.size();
00288 myIntegers.push_back(nbNodes);
00289 for (i = 0; i < nbNodes; i++) {
00290 myIntegers.push_back(nodes_ids[i]);
00291 }
00292
00293 int nbFaces = quantities.size();
00294 myIntegers.push_back(nbFaces);
00295 for (i = 0; i < nbFaces; i++) {
00296 myIntegers.push_back(quantities[i]);
00297 }
00298
00299 myNumber++;
00300 }
00301
00302
00303
00304
00305
00306 void SMESHDS_Command::RemoveNode(int NodeID)
00307 {
00308 if (!myType == SMESHDS_RemoveNode)
00309 {
00310 MESSAGE("SMESHDS_Command::RemoveNode : Bad Type");
00311 return;
00312 }
00313 myIntegers.push_back(NodeID);
00314 myNumber++;
00315 }
00316
00317
00318
00319
00320
00321 void SMESHDS_Command::RemoveElement(int ElementID)
00322 {
00323 if (!myType == SMESHDS_RemoveElement)
00324 {
00325 MESSAGE("SMESHDS_Command::RemoveElement : Bad Type");
00326 return;
00327 }
00328 myIntegers.push_back(ElementID);
00329 myNumber++;
00330 }
00331
00332
00333
00334
00335
00336
00337 void SMESHDS_Command::ChangeElementNodes(int ElementID, int nodes[], int nbnodes)
00338 {
00339 if (!myType == SMESHDS_ChangeElementNodes)
00340 {
00341 MESSAGE("SMESHDS_Command::ChangeElementNodes : Bad Type");
00342 return;
00343 }
00344 myIntegers.push_back(ElementID);
00345 myIntegers.push_back(nbnodes);
00346 for ( int i = 0; i < nbnodes; i++ )
00347 myIntegers.push_back( nodes[ i ] );
00348
00349 myNumber++;
00350 }
00351
00352
00353
00354
00355
00356 void SMESHDS_Command::ChangePolyhedronNodes (const int ElementID,
00357 std::vector<int> nodes_ids,
00358 std::vector<int> quantities)
00359 {
00360 if (myType != SMESHDS_ChangePolyhedronNodes)
00361 {
00362 MESSAGE("SMESHDS_Command::ChangePolyhedronNodes : Bad Type");
00363 return;
00364 }
00365 myIntegers.push_back(ElementID);
00366
00367 int i, nbNodes = nodes_ids.size();
00368 myIntegers.push_back(nbNodes);
00369 for (i = 0; i < nbNodes; i++) {
00370 myIntegers.push_back(nodes_ids[i]);
00371 }
00372
00373 int nbFaces = quantities.size();
00374 myIntegers.push_back(nbFaces);
00375 for (i = 0; i < nbFaces; i++) {
00376 myIntegers.push_back(quantities[i]);
00377 }
00378
00379 myNumber++;
00380 }
00381
00382
00383
00384
00385
00386
00387 void SMESHDS_Command::Renumber (const bool isNodes, const int startID, const int deltaID)
00388 {
00389 if (!myType == SMESHDS_Renumber)
00390 {
00391 MESSAGE("SMESHDS_Command::Renumber : Bad Type");
00392 return;
00393 }
00394 myIntegers.push_back(isNodes);
00395 myIntegers.push_back(startID);
00396 myIntegers.push_back(deltaID);
00397 myNumber++;
00398 }
00399
00400
00401
00402
00403
00404 SMESHDS_CommandType SMESHDS_Command::GetType()
00405 {
00406 return myType;
00407 }
00408
00409
00410
00411
00412
00413 int SMESHDS_Command::GetNumber()
00414 {
00415 return myNumber;
00416 }
00417
00418
00419
00420
00421
00422 const list < int >&SMESHDS_Command::GetIndexes()
00423 {
00424 return myIntegers;
00425 }
00426
00427
00428
00429
00430
00431 const list < double >&SMESHDS_Command::GetCoords()
00432 {
00433 return myReals;
00434 }
00435
00436
00437
00438
00439
00440
00441
00442
00443
00444
00445 void SMESHDS_Command::AddEdge(int NewEdgeID, int n1, int n2, int n12)
00446 {
00447 if (!myType == SMESHDS_AddQuadEdge) {
00448 MESSAGE("SMESHDS_Command::AddEdge : Bad Type");
00449 return;
00450 }
00451 myIntegers.push_back(NewEdgeID);
00452 myIntegers.push_back(n1);
00453 myIntegers.push_back(n2);
00454 myIntegers.push_back(n12);
00455 myNumber++;
00456 }
00457
00458
00459
00460
00461
00462 void SMESHDS_Command::AddFace(int NewFaceID,
00463 int n1, int n2, int n3,
00464 int n12, int n23, int n31)
00465 {
00466 if (!myType == SMESHDS_AddQuadTriangle) {
00467 MESSAGE("SMESHDS_Command::AddFace : Bad Type");
00468 return;
00469 }
00470 myIntegers.push_back(NewFaceID);
00471 myIntegers.push_back(n1);
00472 myIntegers.push_back(n2);
00473 myIntegers.push_back(n3);
00474 myIntegers.push_back(n12);
00475 myIntegers.push_back(n23);
00476 myIntegers.push_back(n31);
00477 myNumber++;
00478 }
00479
00480
00481
00482
00483
00484 void SMESHDS_Command::AddFace(int NewFaceID,
00485 int n1, int n2, int n3, int n4,
00486 int n12, int n23, int n34, int n41)
00487 {
00488 if (!myType == SMESHDS_AddQuadQuadrangle) {
00489 MESSAGE("SMESHDS_Command::AddFace : Bad Type");
00490 return;
00491 }
00492 myIntegers.push_back(NewFaceID);
00493 myIntegers.push_back(n1);
00494 myIntegers.push_back(n2);
00495 myIntegers.push_back(n3);
00496 myIntegers.push_back(n4);
00497 myIntegers.push_back(n12);
00498 myIntegers.push_back(n23);
00499 myIntegers.push_back(n34);
00500 myIntegers.push_back(n41);
00501 myNumber++;
00502 }
00503
00504
00505
00506
00507
00508 void SMESHDS_Command::AddVolume(int NewVolID, int n1, int n2, int n3, int n4,
00509 int n12, int n23, int n31,
00510 int n14, int n24, int n34)
00511 {
00512 if (!myType == SMESHDS_AddQuadTetrahedron) {
00513 MESSAGE("SMESHDS_Command::AddVolume : Bad Type");
00514 return;
00515 }
00516 myIntegers.push_back(NewVolID);
00517 myIntegers.push_back(n1);
00518 myIntegers.push_back(n2);
00519 myIntegers.push_back(n3);
00520 myIntegers.push_back(n4);
00521 myIntegers.push_back(n12);
00522 myIntegers.push_back(n23);
00523 myIntegers.push_back(n31);
00524 myIntegers.push_back(n14);
00525 myIntegers.push_back(n24);
00526 myIntegers.push_back(n34);
00527 myNumber++;
00528 }
00529
00530
00531
00532
00533
00534 void SMESHDS_Command::AddVolume(int NewVolID, int n1, int n2,
00535 int n3, int n4, int n5,
00536 int n12, int n23, int n34, int n41,
00537 int n15, int n25, int n35, int n45)
00538 {
00539 if (!myType == SMESHDS_AddQuadPyramid) {
00540 MESSAGE("SMESHDS_Command::AddVolume : Bad Type");
00541 return;
00542 }
00543 myIntegers.push_back(NewVolID);
00544 myIntegers.push_back(n1);
00545 myIntegers.push_back(n2);
00546 myIntegers.push_back(n3);
00547 myIntegers.push_back(n4);
00548 myIntegers.push_back(n5);
00549 myIntegers.push_back(n12);
00550 myIntegers.push_back(n23);
00551 myIntegers.push_back(n34);
00552 myIntegers.push_back(n41);
00553 myIntegers.push_back(n15);
00554 myIntegers.push_back(n25);
00555 myIntegers.push_back(n35);
00556 myIntegers.push_back(n45);
00557 myNumber++;
00558 }
00559
00560
00561
00562
00563
00564 void SMESHDS_Command::AddVolume(int NewVolID, int n1, int n2,
00565 int n3, int n4, int n5,int n6,
00566 int n12, int n23, int n31,
00567 int n45, int n56, int n64,
00568 int n14, int n25, int n36)
00569 {
00570 if (!myType == SMESHDS_AddQuadPentahedron) {
00571 MESSAGE("SMESHDS_Command::AddVolume : Bad Type");
00572 return;
00573 }
00574 myIntegers.push_back(NewVolID);
00575 myIntegers.push_back(n1);
00576 myIntegers.push_back(n2);
00577 myIntegers.push_back(n3);
00578 myIntegers.push_back(n4);
00579 myIntegers.push_back(n5);
00580 myIntegers.push_back(n6);
00581 myIntegers.push_back(n12);
00582 myIntegers.push_back(n23);
00583 myIntegers.push_back(n31);
00584 myIntegers.push_back(n45);
00585 myIntegers.push_back(n56);
00586 myIntegers.push_back(n64);
00587 myIntegers.push_back(n14);
00588 myIntegers.push_back(n25);
00589 myIntegers.push_back(n36);
00590 myNumber++;
00591 }
00592
00593
00594
00595
00596
00597 void SMESHDS_Command::AddVolume(int NewVolID, int n1, int n2, int n3,
00598 int n4, int n5, int n6, int n7, int n8,
00599 int n12, int n23, int n34, int n41,
00600 int n56, int n67, int n78, int n85,
00601 int n15, int n26, int n37, int n48)
00602 {
00603 if (!myType == SMESHDS_AddQuadHexahedron) {
00604 MESSAGE("SMESHDS_Command::AddVolume : Bad Type");
00605 return;
00606 }
00607 myIntegers.push_back(NewVolID);
00608 myIntegers.push_back(n1);
00609 myIntegers.push_back(n2);
00610 myIntegers.push_back(n3);
00611 myIntegers.push_back(n4);
00612 myIntegers.push_back(n5);
00613 myIntegers.push_back(n6);
00614 myIntegers.push_back(n7);
00615 myIntegers.push_back(n8);
00616 myIntegers.push_back(n12);
00617 myIntegers.push_back(n23);
00618 myIntegers.push_back(n34);
00619 myIntegers.push_back(n41);
00620 myIntegers.push_back(n56);
00621 myIntegers.push_back(n67);
00622 myIntegers.push_back(n78);
00623 myIntegers.push_back(n85);
00624 myIntegers.push_back(n15);
00625 myIntegers.push_back(n26);
00626 myIntegers.push_back(n37);
00627 myIntegers.push_back(n48);
00628 myNumber++;
00629 }
00630