smesh/src/SMESH/SMESH_Mesh.hxx

147 lines
3.4 KiB
C++
Raw Normal View History

2003-05-19 19:18:36 +06:00
//=============================================================================
// File : SMESH_Mesh.hxx
// Created : sam mai 18 08:07:35 CEST 2002
// Author : Paul RASCLE, EDF
// Project : SALOME
// Copyright : EDF 2002
// $Header$
//=============================================================================
#ifndef _SMESH_MESH_HXX_
#define _SMESH_MESH_HXX_
#include "SMESHDS_Document.hxx"
#include "SMESHDS_Mesh.hxx"
#include "SMESH_Hypothesis.hxx"
#include "SMESH_subMesh.hxx"
#include "SMESHDS_ListOfCommand.hxx"
//#include "SMESHDS_ListOfAsciiString.hxx"
//#include "SMESHDS_ListIteratorOfListOfAsciiString.hxx"
#include "Utils_SALOME_Exception.hxx"
#include <TopExp.hxx>
#include <TopExp_Explorer.hxx>
#include <TopoDS.hxx>
#include <TopoDS_Iterator.hxx>
#include <TopoDS_Compound.hxx>
#include <TopoDS_CompSolid.hxx>
#include <TopoDS_Solid.hxx>
#include <TopoDS_Shell.hxx>
#include <TopoDS_Face.hxx>
#include <TopoDS_Wire.hxx>
#include <TopoDS_Edge.hxx>
#include <TopoDS_Vertex.hxx>
#include <TopoDS_Shape.hxx>
#include <TopTools_IndexedMapOfShape.hxx>
#include <vector>
#include <list>
#include <map>
class SMESH_Gen;
class SMESH_Mesh
{
public:
SMESH_Mesh();
SMESH_Mesh(int localId,
int studyId,
SMESH_Gen* gen,
const Handle(SMESHDS_Document)& myDocument);
virtual ~SMESH_Mesh();
void ShapeToMesh(const TopoDS_Shape& aShape)
throw (SALOME_Exception);
bool AddHypothesis(const TopoDS_Shape& aSubShape,
int anHypId)
throw (SALOME_Exception);
bool RemoveHypothesis(const TopoDS_Shape& aSubShape,
int anHypId)
throw (SALOME_Exception);
const list<SMESHDS_Hypothesis*>&
GetHypothesisList(const TopoDS_Shape& aSubShape)
throw (SALOME_Exception);
const SMESHDS_ListOfCommand& GetLog()
throw (SALOME_Exception);
// const SMESHDS_ListOfAsciiString& GetLog()
// throw (SALOME_Exception);
void ClearLog()
throw (SALOME_Exception);
int GetId();
const Handle(SMESHDS_Mesh)& GetMeshDS();
SMESH_Gen* GetGen();
SMESH_subMesh* GetSubMesh(const TopoDS_Shape & aSubShape)
throw (SALOME_Exception);
SMESH_subMesh* GetSubMeshContaining(const TopoDS_Shape & aSubShape)
throw (SALOME_Exception);
const list <SMESH_subMesh*>&
GetSubMeshUsingHypothesis(SMESHDS_Hypothesis* anHyp)
throw (SALOME_Exception);
void ExportDAT( const char* file )
throw (SALOME_Exception);
void ExportMED( const char* file )
throw (SALOME_Exception);
void ExportUNV( const char* file )
throw (SALOME_Exception);
int NbNodes()
throw (SALOME_Exception);
int NbEdges()
throw (SALOME_Exception);
int NbFaces()
throw (SALOME_Exception);
int NbTriangles()
throw (SALOME_Exception);
int NbQuadrangles()
throw (SALOME_Exception);
int NbVolumes()
throw (SALOME_Exception);
int NbTetras()
throw (SALOME_Exception);
int NbHexas()
throw (SALOME_Exception);
int NbSubMesh()
throw (SALOME_Exception);
private:
int _id; // id given by creator (unique within the creator instance)
int _studyId;
int _idDoc; // id given by SMESHDS_Document
bool _isShapeToMesh; // set to true when a shape is given (only once)
list<SMESHDS_Hypothesis*> _subShapeHypothesisList;
list<SMESH_subMesh*> _subMeshesUsingHypothesisList;
Handle (SMESHDS_Document) _myDocument;
Handle (SMESHDS_Mesh) _myMeshDS;
TopTools_IndexedMapOfShape _subShapes;
map<int, SMESH_subMesh*> _mapSubMesh;
SMESH_Gen* _gen;
};
#endif