smesh/src/SMESHDS/SMESHDS_Script.cxx

215 lines
7.5 KiB
C++
Raw Normal View History

2003-07-10 16:13:42 +06:00
// SMESH SMESHDS : management of mesh data and SMESH document
//
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
// version 2.1 of the License.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// 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
//
//
//
// File : SMESH_Script.cxx
// Author : Yves FRICAUD, OCC
// Module : SMESH
// $Header:
2003-05-19 19:25:06 +06:00
#include "SMESHDS_Script.hxx"
2003-05-19 19:25:06 +06:00
2004-12-01 15:48:31 +05:00
using namespace std;
//=======================================================================
//function : getCommand
//purpose :
//=======================================================================
SMESHDS_Command* SMESHDS_Script::getCommand(const SMESHDS_CommandType aType)
{
SMESHDS_Command* com;
if (myCommands.empty())
{
com = new SMESHDS_Command(aType);
myCommands.insert(myCommands.end(),com);
}
else
{
com = myCommands.back();
if (com->GetType() != aType)
{
com = new SMESHDS_Command(aType);
myCommands.insert(myCommands.end(),com);
}
}
return com;
}
2003-05-19 19:25:06 +06:00
//=======================================================================
//function :
//purpose :
//=======================================================================
void SMESHDS_Script::AddNode(int NewNodeID, double x, double y, double z)
2003-05-19 19:25:06 +06:00
{
2004-12-01 15:48:31 +05:00
getCommand(SMESHDS_AddNode)->AddNode(NewNodeID, x, y, z);
2003-05-19 19:25:06 +06:00
}
//=======================================================================
//function :
//purpose :
//=======================================================================
void SMESHDS_Script::AddEdge(int NewEdgeID, int idnode1, int idnode2)
2003-05-19 19:25:06 +06:00
{
2004-12-01 15:48:31 +05:00
getCommand(SMESHDS_AddEdge)->AddEdge(NewEdgeID, idnode1, idnode2);
2003-05-19 19:25:06 +06:00
}
//=======================================================================
//function :
//purpose :
//=======================================================================
void SMESHDS_Script::AddFace(int NewFaceID,
2004-12-01 15:48:31 +05:00
int idnode1, int idnode2, int idnode3)
2003-05-19 19:25:06 +06:00
{
2004-12-01 15:48:31 +05:00
getCommand(SMESHDS_AddTriangle)->AddFace(NewFaceID,
idnode1, idnode2, idnode3);
2003-05-19 19:25:06 +06:00
}
//=======================================================================
//function :
//purpose :
//=======================================================================
void SMESHDS_Script::AddFace(int NewFaceID,
2004-12-01 15:48:31 +05:00
int idnode1, int idnode2,
int idnode3, int idnode4)
2003-05-19 19:25:06 +06:00
{
2004-12-01 15:48:31 +05:00
getCommand(SMESHDS_AddQuadrangle)->AddFace(NewFaceID,
idnode1, idnode2,
idnode3, idnode4);
2003-05-19 19:25:06 +06:00
}
//=======================================================================
//function :
//purpose :
//=======================================================================
void SMESHDS_Script::AddVolume(int NewID,
2004-12-01 15:48:31 +05:00
int idnode1, int idnode2,
int idnode3, int idnode4)
2003-05-19 19:25:06 +06:00
{
2004-12-01 15:48:31 +05:00
getCommand(SMESHDS_AddTetrahedron)->AddVolume(NewID,
idnode1, idnode2,
idnode3, idnode4);
2003-05-19 19:25:06 +06:00
}
//=======================================================================
//function :
//purpose :
//=======================================================================
void SMESHDS_Script::AddVolume(int NewID,
2004-12-01 15:48:31 +05:00
int idnode1, int idnode2,
int idnode3, int idnode4, int idnode5)
2003-05-19 19:25:06 +06:00
{
2004-12-01 15:48:31 +05:00
getCommand(SMESHDS_AddPyramid)->AddVolume(NewID,
idnode1, idnode2,
idnode3, idnode4, idnode5);
2003-05-19 19:25:06 +06:00
}
//=======================================================================
//function :
//purpose :
//=======================================================================
void SMESHDS_Script::AddVolume(int NewID,
2004-12-01 15:48:31 +05:00
int idnode1, int idnode2, int idnode3,
int idnode4, int idnode5, int idnode6)
2003-05-19 19:25:06 +06:00
{
2004-12-01 15:48:31 +05:00
getCommand(SMESHDS_AddPrism)->AddVolume(NewID,
idnode1, idnode2, idnode3,
idnode4, idnode5, idnode6);
2003-05-19 19:25:06 +06:00
}
//=======================================================================
//function :
//purpose :
//=======================================================================
void SMESHDS_Script::AddVolume(int NewID,
2004-12-01 15:48:31 +05:00
int idnode1, int idnode2, int idnode3, int idnode4,
int idnode5, int idnode6, int idnode7, int idnode8)
2003-05-19 19:25:06 +06:00
{
2004-12-01 15:48:31 +05:00
getCommand(SMESHDS_AddHexahedron)->AddVolume(NewID,
idnode1, idnode2, idnode3, idnode4,
idnode5, idnode6, idnode7, idnode8);
2003-05-19 19:25:06 +06:00
}
//=======================================================================
//function :
//purpose :
//=======================================================================
void SMESHDS_Script::MoveNode(int NewNodeID, double x, double y, double z)
2003-05-19 19:25:06 +06:00
{
2004-12-01 15:48:31 +05:00
getCommand(SMESHDS_MoveNode)->MoveNode(NewNodeID, x, y, z);
2003-05-19 19:25:06 +06:00
}
//=======================================================================
//function :
//purpose :
//=======================================================================
void SMESHDS_Script::RemoveNode(int ID)
2003-05-19 19:25:06 +06:00
{
2004-12-01 15:48:31 +05:00
getCommand(SMESHDS_RemoveNode)->RemoveNode(ID);
2003-05-19 19:25:06 +06:00
}
//=======================================================================
//function :
//purpose :
//=======================================================================
void SMESHDS_Script::RemoveElement(int ElementID)
2003-05-19 19:25:06 +06:00
{
2004-12-01 15:48:31 +05:00
getCommand(SMESHDS_RemoveElement)->RemoveElement(ElementID);
}
//=======================================================================
//function : ChangeElementNodes
//purpose :
//=======================================================================
void SMESHDS_Script::ChangeElementNodes(int ElementID, int nodes[], int nbnodes)
{
getCommand(SMESHDS_ChangeElementNodes)->ChangeElementNodes( ElementID, nodes, nbnodes );
}
//=======================================================================
//function : Renumber
//purpose :
//=======================================================================
void SMESHDS_Script::Renumber (const bool isNodes, const int startID, const int deltaID)
{
getCommand(SMESHDS_Renumber)->Renumber( isNodes, startID, deltaID );
2003-05-19 19:25:06 +06:00
}
//=======================================================================
//function :
//purpose :
//=======================================================================
void SMESHDS_Script::Clear()
2003-05-19 19:25:06 +06:00
{
myCommands.clear();
2003-05-19 19:25:06 +06:00
}
//=======================================================================
//function :
//purpose :
//=======================================================================
const list<SMESHDS_Command*>& SMESHDS_Script::GetCommands()
2003-05-19 19:25:06 +06:00
{
return myCommands;
2003-05-19 19:25:06 +06:00
}