mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-03-10 23:14:33 +05:00
fix after review. Build completed
This commit is contained in:
parent
13ed46158e
commit
364f6b2346
@ -892,7 +892,7 @@ Driver_Mesh::Status DriverCGNS_Read::Perform()
|
|||||||
// ...
|
// ...
|
||||||
// NfacesM, Face1M, Face2M, ... FaceNM
|
// NfacesM, Face1M, Face2M, ... FaceNM
|
||||||
const int nbFaces = elemData[ pos++ ];
|
const int nbFaces = elemData[ pos++ ];
|
||||||
vector<int> quantities( nbFaces );
|
vector<smIdType> quantities( nbFaces );
|
||||||
vector<const SMDS_MeshNode*> nodes, faceNodes;
|
vector<const SMDS_MeshNode*> nodes, faceNodes;
|
||||||
nodes.reserve( nbFaces * 4 );
|
nodes.reserve( nbFaces * 4 );
|
||||||
for ( int iF = 0; iF < nbFaces; ++iF )
|
for ( int iF = 0; iF < nbFaces; ++iF )
|
||||||
|
@ -139,7 +139,7 @@ Driver_Mesh::Status DriverDAT_W_SMDS_Mesh::Perform()
|
|||||||
|
|
||||||
if (( v = myMesh->DownCast< SMDS_MeshVolume >( elem )))
|
if (( v = myMesh->DownCast< SMDS_MeshVolume >( elem )))
|
||||||
{
|
{
|
||||||
std::vector<int> quant = v->GetQuantities();
|
std::vector<smIdType> quant = v->GetQuantities();
|
||||||
if ( !quant.empty() )
|
if ( !quant.empty() )
|
||||||
{
|
{
|
||||||
fprintf(aFileId, "%d %d ", (int)quant.size(), quant[0]);
|
fprintf(aFileId, "%d %d ", (int)quant.size(), quant[0]);
|
||||||
|
@ -400,7 +400,7 @@ Driver_Mesh::Status DriverMED_R_SMESHDS_Mesh::Perform()
|
|||||||
for(TInt iElem = 0; iElem < aNbElem; iElem++){
|
for(TInt iElem = 0; iElem < aNbElem; iElem++){
|
||||||
MED::TCConnSliceArr aConnSliceArr = aPolyedreInfo->GetConnSliceArr(iElem);
|
MED::TCConnSliceArr aConnSliceArr = aPolyedreInfo->GetConnSliceArr(iElem);
|
||||||
TInt aNbFaces = aConnSliceArr.size();
|
TInt aNbFaces = aConnSliceArr.size();
|
||||||
typedef MED::TVector<int> TQuantities;
|
typedef MED::TVector<smIdType> TQuantities;
|
||||||
TQuantities aQuantities(aNbFaces);
|
TQuantities aQuantities(aNbFaces);
|
||||||
TInt aNbNodes = aPolyedreInfo->GetNbNodes(iElem);
|
TInt aNbNodes = aPolyedreInfo->GetNbNodes(iElem);
|
||||||
TNodeIds aNodeIds(aNbNodes);
|
TNodeIds aNodeIds(aNbNodes);
|
||||||
|
@ -383,9 +383,9 @@ void SMDS_NodeFactory::Compact( std::vector<smIdType>& theVtkIDsOldToNew )
|
|||||||
// in the chunks. So we remove holes and report relocation in theVtkIDsOldToNew:
|
// in the chunks. So we remove holes and report relocation in theVtkIDsOldToNew:
|
||||||
// theVtkIDsOldToNew[ old VtkID ] = new VtkID
|
// theVtkIDsOldToNew[ old VtkID ] = new VtkID
|
||||||
|
|
||||||
int oldNbNodes = myMesh->GetGrid()->GetNumberOfPoints();
|
smIdType oldNbNodes = myMesh->GetGrid()->GetNumberOfPoints();
|
||||||
int newNbNodes = NbUsedElements();
|
smIdType newNbNodes = NbUsedElements();
|
||||||
int newNbChunks = newNbNodes / theChunkSize + bool ( newNbNodes % theChunkSize );
|
smIdType newNbChunks = newNbNodes / theChunkSize + bool ( newNbNodes % theChunkSize );
|
||||||
smIdType maxNodeID = GetMaxID();
|
smIdType maxNodeID = GetMaxID();
|
||||||
|
|
||||||
theVtkIDsOldToNew.resize( oldNbNodes, -1 );
|
theVtkIDsOldToNew.resize( oldNbNodes, -1 );
|
||||||
|
@ -98,7 +98,7 @@ public:
|
|||||||
const SMDS_MeshElement* FindElement( const smIdType id ) const;
|
const SMDS_MeshElement* FindElement( const smIdType id ) const;
|
||||||
|
|
||||||
//! Return a number of used elements
|
//! Return a number of used elements
|
||||||
int NbUsedElements() const { return myNbUsedElements; }
|
smIdType NbUsedElements() const { return myNbUsedElements; }
|
||||||
|
|
||||||
//! Return an iterator on all element filtered using a given filter.
|
//! Return an iterator on all element filtered using a given filter.
|
||||||
// nbElemsToReturn is used to optimize by stopping the iteration as soon as
|
// nbElemsToReturn is used to optimize by stopping the iteration as soon as
|
||||||
|
@ -908,7 +908,7 @@ SMDS_MeshFace* SMDS_Mesh::AddQuadPolygonalFace (const std::vector<const SMDS_Mes
|
|||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
SMDS_MeshVolume * SMDS_Mesh::AddPolyhedralVolumeWithID (const std::vector<smIdType> & nodes_ids,
|
SMDS_MeshVolume * SMDS_Mesh::AddPolyhedralVolumeWithID (const std::vector<smIdType> & nodes_ids,
|
||||||
const std::vector<int> & quantities,
|
const std::vector<smIdType> & quantities,
|
||||||
const smIdType ID)
|
const smIdType ID)
|
||||||
{
|
{
|
||||||
int nbNodes = nodes_ids.size();
|
int nbNodes = nodes_ids.size();
|
||||||
@ -928,7 +928,7 @@ SMDS_MeshVolume * SMDS_Mesh::AddPolyhedralVolumeWithID (const std::vector<smIdTy
|
|||||||
|
|
||||||
SMDS_MeshVolume*
|
SMDS_MeshVolume*
|
||||||
SMDS_Mesh::AddPolyhedralVolumeWithID (const std::vector<const SMDS_MeshNode*>& nodes,
|
SMDS_Mesh::AddPolyhedralVolumeWithID (const std::vector<const SMDS_MeshNode*>& nodes,
|
||||||
const std::vector<int> & quantities,
|
const std::vector<smIdType> & quantities,
|
||||||
const smIdType ID)
|
const smIdType ID)
|
||||||
{
|
{
|
||||||
if ( nodes.empty() || quantities.empty() )
|
if ( nodes.empty() || quantities.empty() )
|
||||||
@ -952,7 +952,7 @@ SMDS_Mesh::AddPolyhedralVolumeWithID (const std::vector<const SMDS_MeshNode*>& n
|
|||||||
|
|
||||||
SMDS_MeshVolume* SMDS_Mesh::AddPolyhedralVolume
|
SMDS_MeshVolume* SMDS_Mesh::AddPolyhedralVolume
|
||||||
(const std::vector<const SMDS_MeshNode*> & nodes,
|
(const std::vector<const SMDS_MeshNode*> & nodes,
|
||||||
const std::vector<int> & quantities)
|
const std::vector<smIdType> & quantities)
|
||||||
{
|
{
|
||||||
smIdType ID = myCellFactory->GetFreeID();
|
smIdType ID = myCellFactory->GetFreeID();
|
||||||
return SMDS_Mesh::AddPolyhedralVolumeWithID(nodes, quantities, ID);
|
return SMDS_Mesh::AddPolyhedralVolumeWithID(nodes, quantities, ID);
|
||||||
@ -1459,7 +1459,7 @@ int SMDS_Mesh::GetElementsByNodes(const std::vector<const SMDS_MeshNode *>& node
|
|||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
/// Return the number of nodes
|
/// Return the number of nodes
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
int SMDS_Mesh::NbNodes() const
|
smIdType SMDS_Mesh::NbNodes() const
|
||||||
{
|
{
|
||||||
return myInfo.NbNodes();
|
return myInfo.NbNodes();
|
||||||
}
|
}
|
||||||
@ -1474,7 +1474,7 @@ int SMDS_Mesh::NbElements() const
|
|||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
/// Return the number of 0D elements
|
/// Return the number of 0D elements
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
int SMDS_Mesh::Nb0DElements() const
|
smIdType SMDS_Mesh::Nb0DElements() const
|
||||||
{
|
{
|
||||||
return myInfo.Nb0DElements();
|
return myInfo.Nb0DElements();
|
||||||
}
|
}
|
||||||
@ -1589,7 +1589,7 @@ SMDS_NodeIteratorPtr SMDS_Mesh::nodesIterator() const
|
|||||||
|
|
||||||
SMDS_ElemIteratorPtr SMDS_Mesh::elementGeomIterator(SMDSAbs_GeometryType type) const
|
SMDS_ElemIteratorPtr SMDS_Mesh::elementGeomIterator(SMDSAbs_GeometryType type) const
|
||||||
{
|
{
|
||||||
int nbElems = myCellFactory->CompactChangePointers() ? -1 : myInfo.NbElements( type );
|
smIdType nbElems = myCellFactory->CompactChangePointers() ? -1 : myInfo.NbElements( type );
|
||||||
return myCellFactory->GetIterator< SMDS_ElemIterator >( new SMDS_MeshElement::GeomFilter( type ),
|
return myCellFactory->GetIterator< SMDS_ElemIterator >( new SMDS_MeshElement::GeomFilter( type ),
|
||||||
nbElems);
|
nbElems);
|
||||||
}
|
}
|
||||||
@ -1600,7 +1600,7 @@ SMDS_ElemIteratorPtr SMDS_Mesh::elementEntityIterator(SMDSAbs_EntityType type) c
|
|||||||
{
|
{
|
||||||
return myNodeFactory->GetIterator< SMDS_ElemIterator >( new SMDS_MeshElement::NonNullFilter );
|
return myNodeFactory->GetIterator< SMDS_ElemIterator >( new SMDS_MeshElement::NonNullFilter );
|
||||||
}
|
}
|
||||||
int nbElems = myCellFactory->CompactChangePointers() ? -1 : myInfo.NbElements( type );
|
smIdType nbElems = myCellFactory->CompactChangePointers() ? -1 : myInfo.NbElements( type );
|
||||||
return myCellFactory->GetIterator<SMDS_ElemIterator>( new SMDS_MeshElement::EntityFilter( type ),
|
return myCellFactory->GetIterator<SMDS_ElemIterator>( new SMDS_MeshElement::EntityFilter( type ),
|
||||||
nbElems);
|
nbElems);
|
||||||
}
|
}
|
||||||
@ -1620,7 +1620,7 @@ SMDS_ElemIteratorPtr SMDS_Mesh::elementsIterator(SMDSAbs_ElementType type) const
|
|||||||
return myNodeFactory->GetIterator< TIterator >( new SMDS_MeshElement::NonNullFilter );
|
return myNodeFactory->GetIterator< TIterator >( new SMDS_MeshElement::NonNullFilter );
|
||||||
|
|
||||||
default:
|
default:
|
||||||
int nbElems = myCellFactory->CompactChangePointers() ? -1 : myInfo.NbElements( type );
|
smIdType nbElems = myCellFactory->CompactChangePointers() ? -1 : myInfo.NbElements( type );
|
||||||
return myCellFactory->GetIterator< TIterator >( new SMDS_MeshElement::TypeFilter( type ),
|
return myCellFactory->GetIterator< TIterator >( new SMDS_MeshElement::TypeFilter( type ),
|
||||||
nbElems);
|
nbElems);
|
||||||
}
|
}
|
||||||
@ -1634,7 +1634,7 @@ SMDS_ElemIteratorPtr SMDS_Mesh::elementsIterator(SMDSAbs_ElementType type) const
|
|||||||
SMDS_EdgeIteratorPtr SMDS_Mesh::edgesIterator() const
|
SMDS_EdgeIteratorPtr SMDS_Mesh::edgesIterator() const
|
||||||
{
|
{
|
||||||
typedef SMDS_EdgeIterator TIterator;
|
typedef SMDS_EdgeIterator TIterator;
|
||||||
int nbElems = myCellFactory->CompactChangePointers() ? -1 : myInfo.NbEdges();
|
smIdType nbElems = myCellFactory->CompactChangePointers() ? -1 : myInfo.NbEdges();
|
||||||
return myCellFactory->GetIterator< TIterator >( new SMDS_MeshElement::TypeFilter( SMDSAbs_Edge ),
|
return myCellFactory->GetIterator< TIterator >( new SMDS_MeshElement::TypeFilter( SMDSAbs_Edge ),
|
||||||
nbElems);
|
nbElems);
|
||||||
}
|
}
|
||||||
@ -1646,7 +1646,7 @@ SMDS_EdgeIteratorPtr SMDS_Mesh::edgesIterator() const
|
|||||||
SMDS_FaceIteratorPtr SMDS_Mesh::facesIterator() const
|
SMDS_FaceIteratorPtr SMDS_Mesh::facesIterator() const
|
||||||
{
|
{
|
||||||
typedef SMDS_FaceIterator TIterator;
|
typedef SMDS_FaceIterator TIterator;
|
||||||
int nbElems = myCellFactory->CompactChangePointers() ? -1 : myInfo.NbFaces();
|
smIdType nbElems = myCellFactory->CompactChangePointers() ? -1 : myInfo.NbFaces();
|
||||||
return myCellFactory->GetIterator< TIterator >( new SMDS_MeshElement::TypeFilter( SMDSAbs_Face ),
|
return myCellFactory->GetIterator< TIterator >( new SMDS_MeshElement::TypeFilter( SMDSAbs_Face ),
|
||||||
nbElems);
|
nbElems);
|
||||||
}
|
}
|
||||||
@ -1658,7 +1658,7 @@ SMDS_FaceIteratorPtr SMDS_Mesh::facesIterator() const
|
|||||||
SMDS_VolumeIteratorPtr SMDS_Mesh::volumesIterator() const
|
SMDS_VolumeIteratorPtr SMDS_Mesh::volumesIterator() const
|
||||||
{
|
{
|
||||||
typedef SMDS_VolumeIterator TIterator;
|
typedef SMDS_VolumeIterator TIterator;
|
||||||
int nbElems = myCellFactory->CompactChangePointers() ? -1 : myInfo.NbVolumes();
|
smIdType nbElems = myCellFactory->CompactChangePointers() ? -1 : myInfo.NbVolumes();
|
||||||
return
|
return
|
||||||
myCellFactory->GetIterator< TIterator >( new SMDS_MeshElement::TypeFilter( SMDSAbs_Volume ),
|
myCellFactory->GetIterator< TIterator >( new SMDS_MeshElement::TypeFilter( SMDSAbs_Volume ),
|
||||||
nbElems );
|
nbElems );
|
||||||
@ -2981,8 +2981,8 @@ void SMDS_Mesh::CompactMesh()
|
|||||||
myCellFactory->Compact( idCellsNewToOld );
|
myCellFactory->Compact( idCellsNewToOld );
|
||||||
|
|
||||||
// make VTK IDs correspond to SMDS IDs
|
// make VTK IDs correspond to SMDS IDs
|
||||||
int newNodeSize = myNodeFactory->NbUsedElements();
|
smIdType newNodeSize = myNodeFactory->NbUsedElements();
|
||||||
int newCellSize = myCellFactory->NbUsedElements();
|
smIdType newCellSize = myCellFactory->NbUsedElements();
|
||||||
myGrid->compactGrid( idNodesOldToNew, newNodeSize, idCellsNewToOld, newCellSize );
|
myGrid->compactGrid( idNodesOldToNew, newNodeSize, idCellsNewToOld, newCellSize );
|
||||||
|
|
||||||
if ( idsChange && !myElemHolders.empty() )
|
if ( idsChange && !myElemHolders.empty() )
|
||||||
|
@ -575,17 +575,17 @@ public:
|
|||||||
|
|
||||||
virtual SMDS_MeshVolume* AddPolyhedralVolumeWithID
|
virtual SMDS_MeshVolume* AddPolyhedralVolumeWithID
|
||||||
(const std::vector<smIdType> & nodes_ids,
|
(const std::vector<smIdType> & nodes_ids,
|
||||||
const std::vector<int> & quantities,
|
const std::vector<smIdType> & quantities,
|
||||||
const smIdType ID);
|
const smIdType ID);
|
||||||
|
|
||||||
virtual SMDS_MeshVolume* AddPolyhedralVolumeWithID
|
virtual SMDS_MeshVolume* AddPolyhedralVolumeWithID
|
||||||
(const std::vector<const SMDS_MeshNode*> & nodes,
|
(const std::vector<const SMDS_MeshNode*> & nodes,
|
||||||
const std::vector<int> & quantities,
|
const std::vector<smIdType> & quantities,
|
||||||
const smIdType ID);
|
const smIdType ID);
|
||||||
|
|
||||||
virtual SMDS_MeshVolume* AddPolyhedralVolume
|
virtual SMDS_MeshVolume* AddPolyhedralVolume
|
||||||
(const std::vector<const SMDS_MeshNode*> & nodes,
|
(const std::vector<const SMDS_MeshNode*> & nodes,
|
||||||
const std::vector<int> & quantities);
|
const std::vector<smIdType> & quantities);
|
||||||
|
|
||||||
virtual SMDS_MeshVolume* AddVolumeFromVtkIds(const std::vector<vtkIdType>& vtkNodeIds);
|
virtual SMDS_MeshVolume* AddVolumeFromVtkIds(const std::vector<vtkIdType>& vtkNodeIds);
|
||||||
|
|
||||||
@ -689,9 +689,9 @@ public:
|
|||||||
|
|
||||||
const SMDS_MeshInfo& GetMeshInfo() const { return myInfo; }
|
const SMDS_MeshInfo& GetMeshInfo() const { return myInfo; }
|
||||||
|
|
||||||
virtual int NbNodes() const;
|
virtual smIdType NbNodes() const;
|
||||||
virtual int NbElements() const;
|
virtual int NbElements() const;
|
||||||
virtual int Nb0DElements() const;
|
virtual smIdType Nb0DElements() const;
|
||||||
virtual int NbBalls() const;
|
virtual int NbBalls() const;
|
||||||
virtual int NbEdges() const;
|
virtual int NbEdges() const;
|
||||||
virtual int NbFaces() const;
|
virtual int NbFaces() const;
|
||||||
|
@ -36,7 +36,7 @@
|
|||||||
|
|
||||||
// init a polyherdon
|
// init a polyherdon
|
||||||
void SMDS_MeshVolume::init( const std::vector<const SMDS_MeshNode*>& nodes,
|
void SMDS_MeshVolume::init( const std::vector<const SMDS_MeshNode*>& nodes,
|
||||||
const std::vector<int>& nbNodesPerFace )
|
const std::vector<smIdType>& nbNodesPerFace )
|
||||||
{
|
{
|
||||||
std::vector<vtkIdType> ptIds;
|
std::vector<vtkIdType> ptIds;
|
||||||
ptIds.reserve( nodes.size() + nbNodesPerFace.size() + 1 );
|
ptIds.reserve( nodes.size() + nbNodesPerFace.size() + 1 );
|
||||||
@ -44,9 +44,9 @@ void SMDS_MeshVolume::init( const std::vector<const SMDS_MeshNode*>& nodes,
|
|||||||
size_t nbFaces = nbNodesPerFace.size();
|
size_t nbFaces = nbNodesPerFace.size();
|
||||||
for ( size_t iN = 0, iF = 0; iF < nbFaces; iF++ )
|
for ( size_t iN = 0, iF = 0; iF < nbFaces; iF++ )
|
||||||
{
|
{
|
||||||
int nf = nbNodesPerFace[iF];
|
smIdType nf = nbNodesPerFace[iF];
|
||||||
ptIds.push_back(nf);
|
ptIds.push_back(nf);
|
||||||
for (int n = 0; n < nf; n++)
|
for (smIdType n = 0; n < nf; n++)
|
||||||
ptIds.push_back( nodes[ iN++ ]->GetVtkID() );
|
ptIds.push_back( nodes[ iN++ ]->GetVtkID() );
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -115,7 +115,7 @@ bool SMDS_MeshVolume::ChangeNodes(const std::vector<const SMDS_MeshNode*>& nodes
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
const SMDS_MeshNode* SMDS_MeshVolume::GetNode(const int ind) const
|
const SMDS_MeshNode* SMDS_MeshVolume::GetNode(const smIdType ind) const
|
||||||
{
|
{
|
||||||
if ( !IsPoly() )
|
if ( !IsPoly() )
|
||||||
return SMDS_MeshCell::GetNode( ind );
|
return SMDS_MeshCell::GetNode( ind );
|
||||||
@ -266,18 +266,18 @@ const SMDS_MeshNode* SMDS_MeshVolume::GetFaceNode (const int face_ind, const int
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<int> SMDS_MeshVolume::GetQuantities() const
|
std::vector<smIdType> SMDS_MeshVolume::GetQuantities() const
|
||||||
{
|
{
|
||||||
std::vector<int> quantities;
|
std::vector<smIdType> quantities;
|
||||||
if ( IsPoly() )
|
if ( IsPoly() )
|
||||||
{
|
{
|
||||||
vtkIdType nFaces = 0;
|
vtkIdType nFaces = 0;
|
||||||
vtkIdType const *ptIds(nullptr);
|
vtkIdType const *ptIds(nullptr);
|
||||||
getGrid()->GetFaceStream( GetVtkID(), nFaces, ptIds );
|
getGrid()->GetFaceStream( GetVtkID(), nFaces, ptIds );
|
||||||
int id = 0;
|
smIdType id = 0;
|
||||||
for (int i = 0; i < nFaces; i++)
|
for (smIdType i = 0; i < nFaces; i++)
|
||||||
{
|
{
|
||||||
int nodesInFace = ptIds[id]; // nodeIds in ptIds[id+1 .. id+nodesInFace]
|
smIdType nodesInFace = ptIds[id]; // nodeIds in ptIds[id+1 .. id+nodesInFace]
|
||||||
quantities.push_back( nodesInFace );
|
quantities.push_back( nodesInFace );
|
||||||
id += (nodesInFace + 1);
|
id += (nodesInFace + 1);
|
||||||
}
|
}
|
||||||
|
@ -31,6 +31,8 @@
|
|||||||
|
|
||||||
#include "SMDS_MeshCell.hxx"
|
#include "SMDS_MeshCell.hxx"
|
||||||
|
|
||||||
|
#include <smIdType.hxx>
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Mesh volume. This type is not allocated.
|
* \brief Mesh volume. This type is not allocated.
|
||||||
* It is only used as function argument type to provide more clear semantic
|
* It is only used as function argument type to provide more clear semantic
|
||||||
@ -39,7 +41,7 @@
|
|||||||
class SMDS_EXPORT SMDS_MeshVolume : public SMDS_MeshCell
|
class SMDS_EXPORT SMDS_MeshVolume : public SMDS_MeshCell
|
||||||
{
|
{
|
||||||
void init( const std::vector<const SMDS_MeshNode*>& nodes,
|
void init( const std::vector<const SMDS_MeshNode*>& nodes,
|
||||||
const std::vector<int>& nbNodesPerFace ); // init a polyherdon
|
const std::vector<smIdType>& nbNodesPerFace ); // init a polyherdon
|
||||||
|
|
||||||
void init( const std::vector<vtkIdType>& vtkNodeIds );
|
void init( const std::vector<vtkIdType>& vtkNodeIds );
|
||||||
|
|
||||||
@ -47,7 +49,7 @@ class SMDS_EXPORT SMDS_MeshVolume : public SMDS_MeshCell
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
virtual SMDSAbs_ElementType GetType() const { return SMDSAbs_Volume; }
|
virtual SMDSAbs_ElementType GetType() const { return SMDSAbs_Volume; }
|
||||||
virtual const SMDS_MeshNode* GetNode(const int ind) const;
|
virtual const SMDS_MeshNode* GetNode(const smIdType ind) const;
|
||||||
virtual int NbNodes() const;
|
virtual int NbNodes() const;
|
||||||
virtual int NbFaces() const;
|
virtual int NbFaces() const;
|
||||||
virtual int NbEdges() const;
|
virtual int NbEdges() const;
|
||||||
@ -69,7 +71,7 @@ class SMDS_EXPORT SMDS_MeshVolume : public SMDS_MeshCell
|
|||||||
// 1 <= node_ind <= NbFaceNodes()
|
// 1 <= node_ind <= NbFaceNodes()
|
||||||
const SMDS_MeshNode* GetFaceNode (const int face_ind, const int node_ind) const;
|
const SMDS_MeshNode* GetFaceNode (const int face_ind, const int node_ind) const;
|
||||||
|
|
||||||
std::vector<int> GetQuantities() const;
|
std::vector<smIdType> GetQuantities() const;
|
||||||
|
|
||||||
static SMDSAbs_ElementType Type() { return SMDSAbs_Volume; }
|
static SMDSAbs_ElementType Type() { return SMDSAbs_Volume; }
|
||||||
};
|
};
|
||||||
|
@ -1983,49 +1983,49 @@ bool SMDS_VolumeTool::setFace( int faceIndex ) const
|
|||||||
myAllFacesNodeIndices_F = &Tetra_F [0][0];
|
myAllFacesNodeIndices_F = &Tetra_F [0][0];
|
||||||
//myAllFacesNodeIndices_FE = &Tetra_F [0][0];
|
//myAllFacesNodeIndices_FE = &Tetra_F [0][0];
|
||||||
myAllFacesNodeIndices_RE = &Tetra_RE[0][0];
|
myAllFacesNodeIndices_RE = &Tetra_RE[0][0];
|
||||||
myAllFacesNbNodes = Tetra_nbN;
|
myAllFacesNbNodes = (smIdType*)(Tetra_nbN);
|
||||||
myMaxFaceNbNodes = sizeof(Tetra_F[0])/sizeof(Tetra_F[0][0]);
|
myMaxFaceNbNodes = sizeof(Tetra_F[0])/sizeof(Tetra_F[0][0]);
|
||||||
break;
|
break;
|
||||||
case 5:
|
case 5:
|
||||||
myAllFacesNodeIndices_F = &Pyramid_F [0][0];
|
myAllFacesNodeIndices_F = &Pyramid_F [0][0];
|
||||||
//myAllFacesNodeIndices_FE = &Pyramid_F [0][0];
|
//myAllFacesNodeIndices_FE = &Pyramid_F [0][0];
|
||||||
myAllFacesNodeIndices_RE = &Pyramid_RE[0][0];
|
myAllFacesNodeIndices_RE = &Pyramid_RE[0][0];
|
||||||
myAllFacesNbNodes = Pyramid_nbN;
|
myAllFacesNbNodes = (smIdType*)(Pyramid_nbN);
|
||||||
myMaxFaceNbNodes = sizeof(Pyramid_F[0])/sizeof(Pyramid_F[0][0]);
|
myMaxFaceNbNodes = sizeof(Pyramid_F[0])/sizeof(Pyramid_F[0][0]);
|
||||||
break;
|
break;
|
||||||
case 6:
|
case 6:
|
||||||
myAllFacesNodeIndices_F = &Penta_F [0][0];
|
myAllFacesNodeIndices_F = &Penta_F [0][0];
|
||||||
//myAllFacesNodeIndices_FE = &Penta_FE[0][0];
|
//myAllFacesNodeIndices_FE = &Penta_FE[0][0];
|
||||||
myAllFacesNodeIndices_RE = &Penta_RE[0][0];
|
myAllFacesNodeIndices_RE = &Penta_RE[0][0];
|
||||||
myAllFacesNbNodes = Penta_nbN;
|
myAllFacesNbNodes = (smIdType*)(Penta_nbN);
|
||||||
myMaxFaceNbNodes = sizeof(Penta_F[0])/sizeof(Penta_F[0][0]);
|
myMaxFaceNbNodes = sizeof(Penta_F[0])/sizeof(Penta_F[0][0]);
|
||||||
break;
|
break;
|
||||||
case 8:
|
case 8:
|
||||||
myAllFacesNodeIndices_F = &Hexa_F [0][0];
|
myAllFacesNodeIndices_F = &Hexa_F [0][0];
|
||||||
///myAllFacesNodeIndices_FE = &Hexa_FE[0][0];
|
///myAllFacesNodeIndices_FE = &Hexa_FE[0][0];
|
||||||
myAllFacesNodeIndices_RE = &Hexa_RE[0][0];
|
myAllFacesNodeIndices_RE = &Hexa_RE[0][0];
|
||||||
myAllFacesNbNodes = Hexa_nbN;
|
myAllFacesNbNodes = (smIdType*)(Hexa_nbN);
|
||||||
myMaxFaceNbNodes = sizeof(Hexa_F[0])/sizeof(Hexa_F[0][0]);
|
myMaxFaceNbNodes = sizeof(Hexa_F[0])/sizeof(Hexa_F[0][0]);
|
||||||
break;
|
break;
|
||||||
case 10:
|
case 10:
|
||||||
myAllFacesNodeIndices_F = &QuadTetra_F [0][0];
|
myAllFacesNodeIndices_F = &QuadTetra_F [0][0];
|
||||||
//myAllFacesNodeIndices_FE = &QuadTetra_F [0][0];
|
//myAllFacesNodeIndices_FE = &QuadTetra_F [0][0];
|
||||||
myAllFacesNodeIndices_RE = &QuadTetra_RE[0][0];
|
myAllFacesNodeIndices_RE = &QuadTetra_RE[0][0];
|
||||||
myAllFacesNbNodes = QuadTetra_nbN;
|
myAllFacesNbNodes = (smIdType*)(QuadTetra_nbN);
|
||||||
myMaxFaceNbNodes = sizeof(QuadTetra_F[0])/sizeof(QuadTetra_F[0][0]);
|
myMaxFaceNbNodes = sizeof(QuadTetra_F[0])/sizeof(QuadTetra_F[0][0]);
|
||||||
break;
|
break;
|
||||||
case 13:
|
case 13:
|
||||||
myAllFacesNodeIndices_F = &QuadPyram_F [0][0];
|
myAllFacesNodeIndices_F = &QuadPyram_F [0][0];
|
||||||
//myAllFacesNodeIndices_FE = &QuadPyram_F [0][0];
|
//myAllFacesNodeIndices_FE = &QuadPyram_F [0][0];
|
||||||
myAllFacesNodeIndices_RE = &QuadPyram_RE[0][0];
|
myAllFacesNodeIndices_RE = &QuadPyram_RE[0][0];
|
||||||
myAllFacesNbNodes = QuadPyram_nbN;
|
myAllFacesNbNodes = (smIdType*)(QuadPyram_nbN);
|
||||||
myMaxFaceNbNodes = sizeof(QuadPyram_F[0])/sizeof(QuadPyram_F[0][0]);
|
myMaxFaceNbNodes = sizeof(QuadPyram_F[0])/sizeof(QuadPyram_F[0][0]);
|
||||||
break;
|
break;
|
||||||
case 15:
|
case 15:
|
||||||
myAllFacesNodeIndices_F = &QuadPenta_F [0][0];
|
myAllFacesNodeIndices_F = &QuadPenta_F [0][0];
|
||||||
//myAllFacesNodeIndices_FE = &QuadPenta_FE[0][0];
|
//myAllFacesNodeIndices_FE = &QuadPenta_FE[0][0];
|
||||||
myAllFacesNodeIndices_RE = &QuadPenta_RE[0][0];
|
myAllFacesNodeIndices_RE = &QuadPenta_RE[0][0];
|
||||||
myAllFacesNbNodes = QuadPenta_nbN;
|
myAllFacesNbNodes = (smIdType*)(QuadPenta_nbN);
|
||||||
myMaxFaceNbNodes = sizeof(QuadPenta_F[0])/sizeof(QuadPenta_F[0][0]);
|
myMaxFaceNbNodes = sizeof(QuadPenta_F[0])/sizeof(QuadPenta_F[0][0]);
|
||||||
break;
|
break;
|
||||||
case 20:
|
case 20:
|
||||||
@ -2033,14 +2033,14 @@ bool SMDS_VolumeTool::setFace( int faceIndex ) const
|
|||||||
myAllFacesNodeIndices_F = &QuadHexa_F [0][0];
|
myAllFacesNodeIndices_F = &QuadHexa_F [0][0];
|
||||||
//myAllFacesNodeIndices_FE = &QuadHexa_FE[0][0];
|
//myAllFacesNodeIndices_FE = &QuadHexa_FE[0][0];
|
||||||
myAllFacesNodeIndices_RE = &QuadHexa_RE[0][0];
|
myAllFacesNodeIndices_RE = &QuadHexa_RE[0][0];
|
||||||
myAllFacesNbNodes = QuadHexa_nbN;
|
myAllFacesNbNodes = (smIdType*)(QuadHexa_nbN);
|
||||||
myMaxFaceNbNodes = sizeof(QuadHexa_F[0])/sizeof(QuadHexa_F[0][0]);
|
myMaxFaceNbNodes = sizeof(QuadHexa_F[0])/sizeof(QuadHexa_F[0][0]);
|
||||||
if ( !myIgnoreCentralNodes && myVolumeNodes.size() == 27 )
|
if ( !myIgnoreCentralNodes && myVolumeNodes.size() == 27 )
|
||||||
{
|
{
|
||||||
myAllFacesNodeIndices_F = &TriQuadHexa_F [0][0];
|
myAllFacesNodeIndices_F = &TriQuadHexa_F [0][0];
|
||||||
//myAllFacesNodeIndices_FE = &TriQuadHexa_FE[0][0];
|
//myAllFacesNodeIndices_FE = &TriQuadHexa_FE[0][0];
|
||||||
myAllFacesNodeIndices_RE = &TriQuadHexa_RE[0][0];
|
myAllFacesNodeIndices_RE = &TriQuadHexa_RE[0][0];
|
||||||
myAllFacesNbNodes = TriQuadHexa_nbN;
|
myAllFacesNbNodes = (smIdType*)(TriQuadHexa_nbN);
|
||||||
myMaxFaceNbNodes = sizeof(TriQuadHexa_F[0])/sizeof(TriQuadHexa_F[0][0]);
|
myMaxFaceNbNodes = sizeof(TriQuadHexa_F[0])/sizeof(TriQuadHexa_F[0][0]);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -2048,7 +2048,7 @@ bool SMDS_VolumeTool::setFace( int faceIndex ) const
|
|||||||
myAllFacesNodeIndices_F = &HexPrism_F [0][0];
|
myAllFacesNodeIndices_F = &HexPrism_F [0][0];
|
||||||
//myAllFacesNodeIndices_FE = &HexPrism_FE[0][0];
|
//myAllFacesNodeIndices_FE = &HexPrism_FE[0][0];
|
||||||
myAllFacesNodeIndices_RE = &HexPrism_RE[0][0];
|
myAllFacesNodeIndices_RE = &HexPrism_RE[0][0];
|
||||||
myAllFacesNbNodes = HexPrism_nbN;
|
myAllFacesNbNodes = (smIdType*)(HexPrism_nbN);
|
||||||
myMaxFaceNbNodes = sizeof(HexPrism_F[0])/sizeof(HexPrism_F[0][0]);
|
myMaxFaceNbNodes = sizeof(HexPrism_F[0])/sizeof(HexPrism_F[0][0]);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -31,6 +31,8 @@
|
|||||||
|
|
||||||
#include "SMESH_SMDS.hxx"
|
#include "SMESH_SMDS.hxx"
|
||||||
|
|
||||||
|
#include <smIdType.hxx>
|
||||||
|
|
||||||
class SMDS_MeshElement;
|
class SMDS_MeshElement;
|
||||||
class SMDS_MeshNode;
|
class SMDS_MeshNode;
|
||||||
class SMDS_MeshVolume;
|
class SMDS_MeshVolume;
|
||||||
@ -261,7 +263,7 @@ class SMDS_EXPORT SMDS_VolumeTool
|
|||||||
int myNbFaces;
|
int myNbFaces;
|
||||||
std::vector<const SMDS_MeshNode*> myVolumeNodes;
|
std::vector<const SMDS_MeshNode*> myVolumeNodes;
|
||||||
std::vector< int > myPolyIndices; // of a myCurFace
|
std::vector< int > myPolyIndices; // of a myCurFace
|
||||||
std::vector< int > myPolyQuantities;
|
std::vector<smIdType> myPolyQuantities;
|
||||||
std::vector< int > myPolyFacetOri; // -1-in, +1-out, 0-undef
|
std::vector< int > myPolyFacetOri; // -1-in, +1-out, 0-undef
|
||||||
|
|
||||||
typedef std::pair<int,int> Link;
|
typedef std::pair<int,int> Link;
|
||||||
@ -271,7 +273,7 @@ class SMDS_EXPORT SMDS_VolumeTool
|
|||||||
|
|
||||||
mutable const int* myAllFacesNodeIndices_F;
|
mutable const int* myAllFacesNodeIndices_F;
|
||||||
mutable const int* myAllFacesNodeIndices_RE;
|
mutable const int* myAllFacesNodeIndices_RE;
|
||||||
mutable const int* myAllFacesNbNodes;
|
mutable const smIdType* myAllFacesNbNodes;
|
||||||
mutable int myMaxFaceNbNodes;
|
mutable int myMaxFaceNbNodes;
|
||||||
|
|
||||||
struct SaveFacet;
|
struct SaveFacet;
|
||||||
|
@ -3121,7 +3121,7 @@ public:
|
|||||||
:myMesh( theMesh ), myMaxID( theMesh->MaxNodeID() + 1)
|
:myMesh( theMesh ), myMaxID( theMesh->MaxNodeID() + 1)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
long GetLinkID (const SMDS_MeshNode * n1,
|
smIdType GetLinkID (const SMDS_MeshNode * n1,
|
||||||
const SMDS_MeshNode * n2) const
|
const SMDS_MeshNode * n2) const
|
||||||
{
|
{
|
||||||
return ( Min(FromIdType<int>(n1->GetID()),FromIdType<int>(n2->GetID())) * myMaxID + Max(FromIdType<int>(n1->GetID()),FromIdType<int>(n2->GetID())));
|
return ( Min(FromIdType<int>(n1->GetID()),FromIdType<int>(n2->GetID())) * myMaxID + Max(FromIdType<int>(n1->GetID()),FromIdType<int>(n2->GetID())));
|
||||||
@ -4603,7 +4603,7 @@ void SMESH_MeshEditor::sweepElement(const SMDS_MeshElement* elem,
|
|||||||
baseType = SMDSEntity_Polygon; // WARNING: change baseType !!!!
|
baseType = SMDSEntity_Polygon; // WARNING: change baseType !!!!
|
||||||
}
|
}
|
||||||
vector<const SMDS_MeshNode*> polyedre_nodes (nbNodes*2 + 4*nbNodes);
|
vector<const SMDS_MeshNode*> polyedre_nodes (nbNodes*2 + 4*nbNodes);
|
||||||
vector<int> quantities (nbNodes + 2);
|
vector<smIdType> quantities (nbNodes + 2);
|
||||||
polyedre_nodes.clear();
|
polyedre_nodes.clear();
|
||||||
quantities.clear();
|
quantities.clear();
|
||||||
|
|
||||||
@ -6774,7 +6774,7 @@ void SMESH_MeshEditor::FindCoincidentNodes (TIDSortedNodeSet & theNodes,
|
|||||||
|
|
||||||
int SMESH_MeshEditor::SimplifyFace (const vector<const SMDS_MeshNode *>& faceNodes,
|
int SMESH_MeshEditor::SimplifyFace (const vector<const SMDS_MeshNode *>& faceNodes,
|
||||||
vector<const SMDS_MeshNode *>& poly_nodes,
|
vector<const SMDS_MeshNode *>& poly_nodes,
|
||||||
vector<int>& quantities) const
|
vector<smIdType>& quantities) const
|
||||||
{
|
{
|
||||||
int nbNodes = faceNodes.size();
|
int nbNodes = faceNodes.size();
|
||||||
while ( faceNodes[ 0 ] == faceNodes[ nbNodes-1 ] && nbNodes > 2 )
|
while ( faceNodes[ 0 ] == faceNodes[ nbNodes-1 ] && nbNodes > 2 )
|
||||||
@ -7078,7 +7078,7 @@ bool SMESH_MeshEditor::applyMerge( const SMDS_MeshElement* elem,
|
|||||||
|
|
||||||
// a polygon can divide into several elements
|
// a polygon can divide into several elements
|
||||||
vector<const SMDS_MeshNode *> polygons_nodes;
|
vector<const SMDS_MeshNode *> polygons_nodes;
|
||||||
vector<int> quantities;
|
vector<smIdType> quantities;
|
||||||
nbResElems = SimplifyFace( curNodes, polygons_nodes, quantities );
|
nbResElems = SimplifyFace( curNodes, polygons_nodes, quantities );
|
||||||
newElemDefs.resize( nbResElems );
|
newElemDefs.resize( nbResElems );
|
||||||
for ( int inode = 0, iface = 0; iface < nbResElems; iface++ )
|
for ( int inode = 0, iface = 0; iface < nbResElems; iface++ )
|
||||||
@ -7118,7 +7118,7 @@ bool SMESH_MeshEditor::applyMerge( const SMDS_MeshElement* elem,
|
|||||||
int nbFaces = aPolyedre->NbFaces();
|
int nbFaces = aPolyedre->NbFaces();
|
||||||
|
|
||||||
vector<const SMDS_MeshNode *>& poly_nodes = newElemDefs[0].myNodes;
|
vector<const SMDS_MeshNode *>& poly_nodes = newElemDefs[0].myNodes;
|
||||||
vector<int> & quantities = newElemDefs[0].myPolyhedQuantities;
|
vector<smIdType> & quantities = newElemDefs[0].myPolyhedQuantities;
|
||||||
vector<const SMDS_MeshNode *> faceNodes;
|
vector<const SMDS_MeshNode *> faceNodes;
|
||||||
poly_nodes.clear();
|
poly_nodes.clear();
|
||||||
quantities.clear();
|
quantities.clear();
|
||||||
@ -7370,7 +7370,7 @@ bool SMESH_MeshEditor::applyMerge( const SMDS_MeshElement* elem,
|
|||||||
////////////////// HEXAHEDRON ---> polyhedron
|
////////////////// HEXAHEDRON ---> polyhedron
|
||||||
hexa.SetExternalNormal();
|
hexa.SetExternalNormal();
|
||||||
vector<const SMDS_MeshNode *>& poly_nodes = newElemDefs[0].myNodes;
|
vector<const SMDS_MeshNode *>& poly_nodes = newElemDefs[0].myNodes;
|
||||||
vector<int> & quantities = newElemDefs[0].myPolyhedQuantities;
|
vector<smIdType> & quantities = newElemDefs[0].myPolyhedQuantities;
|
||||||
poly_nodes.reserve( 6 * 4 ); poly_nodes.clear();
|
poly_nodes.reserve( 6 * 4 ); poly_nodes.clear();
|
||||||
quantities.reserve( 6 ); quantities.clear();
|
quantities.reserve( 6 ); quantities.clear();
|
||||||
for ( int iFace = 0; iFace < 6; iFace++ )
|
for ( int iFace = 0; iFace < 6; iFace++ )
|
||||||
@ -8607,7 +8607,7 @@ void SMESH_MeshEditor::UpdateVolumes (const SMDS_MeshNode* theBetweenNode
|
|||||||
// insert new nodes in all faces of the volume, sharing link theBetweenNode1 - theBetweenNode2
|
// insert new nodes in all faces of the volume, sharing link theBetweenNode1 - theBetweenNode2
|
||||||
int iface, nbFaces = aVolume.NbFaces();
|
int iface, nbFaces = aVolume.NbFaces();
|
||||||
vector<const SMDS_MeshNode *> poly_nodes;
|
vector<const SMDS_MeshNode *> poly_nodes;
|
||||||
vector<int> quantities (nbFaces);
|
vector<smIdType> quantities (nbFaces);
|
||||||
|
|
||||||
for (iface = 0; iface < nbFaces; iface++) {
|
for (iface = 0; iface < nbFaces; iface++) {
|
||||||
int nbFaceNodes = aVolume.NbFaceNodes(iface), nbInserted = 0;
|
int nbFaceNodes = aVolume.NbFaceNodes(iface), nbInserted = 0;
|
||||||
@ -8672,7 +8672,7 @@ namespace
|
|||||||
|
|
||||||
void volumeToPolyhedron( const SMDS_MeshElement* elem,
|
void volumeToPolyhedron( const SMDS_MeshElement* elem,
|
||||||
vector<const SMDS_MeshNode *> & nodes,
|
vector<const SMDS_MeshNode *> & nodes,
|
||||||
vector<int> & nbNodeInFaces )
|
vector<smIdType> & nbNodeInFaces )
|
||||||
{
|
{
|
||||||
nodes.clear();
|
nodes.clear();
|
||||||
nbNodeInFaces.clear();
|
nbNodeInFaces.clear();
|
||||||
@ -8701,7 +8701,7 @@ int SMESH_MeshEditor::convertElemToQuadratic(SMESHDS_SubMesh * theSm,
|
|||||||
int nbElem = 0;
|
int nbElem = 0;
|
||||||
if( !theSm ) return nbElem;
|
if( !theSm ) return nbElem;
|
||||||
|
|
||||||
vector<int> nbNodeInFaces;
|
vector<smIdType> nbNodeInFaces;
|
||||||
vector<const SMDS_MeshNode *> nodes;
|
vector<const SMDS_MeshNode *> nodes;
|
||||||
SMDS_ElemIteratorPtr ElemItr = theSm->GetElements();
|
SMDS_ElemIteratorPtr ElemItr = theSm->GetElements();
|
||||||
while(ElemItr->more())
|
while(ElemItr->more())
|
||||||
@ -8948,7 +8948,7 @@ void SMESH_MeshEditor::ConvertToQuadratic(const bool theForce3d, const bool theT
|
|||||||
}
|
}
|
||||||
|
|
||||||
// convert volumes
|
// convert volumes
|
||||||
vector<int> nbNodeInFaces;
|
vector<smIdType> nbNodeInFaces;
|
||||||
SMDS_VolumeIteratorPtr aVolumeItr = meshDS->volumesIterator();
|
SMDS_VolumeIteratorPtr aVolumeItr = meshDS->volumesIterator();
|
||||||
while(aVolumeItr->more())
|
while(aVolumeItr->more())
|
||||||
{
|
{
|
||||||
|
@ -89,7 +89,7 @@ public:
|
|||||||
bool myIsPoly, myIsQuad;
|
bool myIsPoly, myIsQuad;
|
||||||
int myID;
|
int myID;
|
||||||
double myBallDiameter;
|
double myBallDiameter;
|
||||||
std::vector<int> myPolyhedQuantities;
|
std::vector<smIdType> myPolyhedQuantities;
|
||||||
std::vector<const SMDS_MeshNode*> myNodes; // not managed by ElemFeatures
|
std::vector<const SMDS_MeshNode*> myNodes; // not managed by ElemFeatures
|
||||||
|
|
||||||
SMESH_EXPORT ElemFeatures( SMDSAbs_ElementType type=SMDSAbs_All, bool isPoly=false, bool isQuad=false )
|
SMESH_EXPORT ElemFeatures( SMDSAbs_ElementType type=SMDSAbs_All, bool isPoly=false, bool isQuad=false )
|
||||||
@ -103,11 +103,11 @@ public:
|
|||||||
SMESH_EXPORT ElemFeatures& Init( double diameter )
|
SMESH_EXPORT ElemFeatures& Init( double diameter )
|
||||||
{ myType = SMDSAbs_Ball; myBallDiameter = diameter; return *this; }
|
{ myType = SMDSAbs_Ball; myBallDiameter = diameter; return *this; }
|
||||||
|
|
||||||
SMESH_EXPORT ElemFeatures& Init( std::vector<int>& quanities, bool isQuad=false )
|
SMESH_EXPORT ElemFeatures& Init( std::vector<smIdType>& quanities, bool isQuad=false )
|
||||||
{ myType = SMDSAbs_Volume; myIsPoly = 1; myIsQuad = isQuad;
|
{ myType = SMDSAbs_Volume; myIsPoly = 1; myIsQuad = isQuad;
|
||||||
myPolyhedQuantities.swap( quanities ); return *this; }
|
myPolyhedQuantities.swap( quanities ); return *this; }
|
||||||
|
|
||||||
SMESH_EXPORT ElemFeatures& Init( const std::vector<int>& quanities, bool isQuad=false )
|
SMESH_EXPORT ElemFeatures& Init( const std::vector<smIdType>& quanities, bool isQuad=false )
|
||||||
{ myType = SMDSAbs_Volume; myIsPoly = 1; myIsQuad = isQuad;
|
{ myType = SMDSAbs_Volume; myIsPoly = 1; myIsQuad = isQuad;
|
||||||
myPolyhedQuantities = quanities; return *this; }
|
myPolyhedQuantities = quanities; return *this; }
|
||||||
|
|
||||||
@ -517,7 +517,7 @@ public:
|
|||||||
|
|
||||||
int SimplifyFace (const std::vector<const SMDS_MeshNode *>& faceNodes,
|
int SimplifyFace (const std::vector<const SMDS_MeshNode *>& faceNodes,
|
||||||
std::vector<const SMDS_MeshNode *>& poly_nodes,
|
std::vector<const SMDS_MeshNode *>& poly_nodes,
|
||||||
std::vector<int>& quantities) const;
|
std::vector<smIdType>& quantities) const;
|
||||||
// Split face, defined by <faceNodes>, into several faces by repeating nodes.
|
// Split face, defined by <faceNodes>, into several faces by repeating nodes.
|
||||||
// Is used by MergeNodes()
|
// Is used by MergeNodes()
|
||||||
|
|
||||||
|
@ -2441,7 +2441,7 @@ SMDS_MeshVolume* SMESH_MesherHelper::AddVolume(const SMDS_MeshNode* n1,
|
|||||||
|
|
||||||
SMDS_MeshVolume*
|
SMDS_MeshVolume*
|
||||||
SMESH_MesherHelper::AddPolyhedralVolume (const std::vector<const SMDS_MeshNode*>& nodes,
|
SMESH_MesherHelper::AddPolyhedralVolume (const std::vector<const SMDS_MeshNode*>& nodes,
|
||||||
const std::vector<int>& quantities,
|
const std::vector<smIdType>& quantities,
|
||||||
const int id,
|
const int id,
|
||||||
const bool force3d)
|
const bool force3d)
|
||||||
{
|
{
|
||||||
@ -2457,7 +2457,7 @@ SMESH_MesherHelper::AddPolyhedralVolume (const std::vector<const SMDS_MeshNode*>
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
vector<const SMDS_MeshNode*> newNodes;
|
vector<const SMDS_MeshNode*> newNodes;
|
||||||
vector<int> newQuantities;
|
vector<smIdType> newQuantities;
|
||||||
for ( size_t iFace = 0, iN = 0; iFace < quantities.size(); ++iFace )
|
for ( size_t iFace = 0, iN = 0; iFace < quantities.size(); ++iFace )
|
||||||
{
|
{
|
||||||
int nbNodesInFace = quantities[iFace];
|
int nbNodesInFace = quantities[iFace];
|
||||||
|
@ -440,7 +440,7 @@ public:
|
|||||||
* Creates polyhedron. In quadratic mesh, adds medium nodes
|
* Creates polyhedron. In quadratic mesh, adds medium nodes
|
||||||
*/
|
*/
|
||||||
SMDS_MeshVolume* AddPolyhedralVolume (const std::vector<const SMDS_MeshNode*>& nodes,
|
SMDS_MeshVolume* AddPolyhedralVolume (const std::vector<const SMDS_MeshNode*>& nodes,
|
||||||
const std::vector<int>& quantities,
|
const std::vector<smIdType>& quantities,
|
||||||
const int ID=0,
|
const int ID=0,
|
||||||
const bool force3d = true);
|
const bool force3d = true);
|
||||||
/*!
|
/*!
|
||||||
|
@ -3732,9 +3732,9 @@ void SMESH_Pattern::
|
|||||||
if ( !volTool.Set( elem ) || !avoidSet.insert( elem ).second )
|
if ( !volTool.Set( elem ) || !avoidSet.insert( elem ).second )
|
||||||
continue; // skip faces or refined elements
|
continue; // skip faces or refined elements
|
||||||
// add polyhedron definition
|
// add polyhedron definition
|
||||||
myPolyhedronQuantities.push_back(vector<int> ());
|
myPolyhedronQuantities.push_back(vector<smIdType> ());
|
||||||
myPolyElemXYZIDs.push_back(TElemDef());
|
myPolyElemXYZIDs.push_back(TElemDef());
|
||||||
vector<int>& quantity = myPolyhedronQuantities.back();
|
vector<smIdType>& quantity = myPolyhedronQuantities.back();
|
||||||
TElemDef & elemDef = myPolyElemXYZIDs.back();
|
TElemDef & elemDef = myPolyElemXYZIDs.back();
|
||||||
// get definitions of new elements on volume faces
|
// get definitions of new elements on volume faces
|
||||||
bool makePoly = false;
|
bool makePoly = false;
|
||||||
@ -3767,7 +3767,7 @@ bool SMESH_Pattern::
|
|||||||
const int theNbBndNodes,
|
const int theNbBndNodes,
|
||||||
const vector< const SMDS_MeshNode* >& theNodes,
|
const vector< const SMDS_MeshNode* >& theNodes,
|
||||||
list< int >& theFaceDefs,
|
list< int >& theFaceDefs,
|
||||||
vector<int>& theQuantity)
|
vector<smIdType>& theQuantity)
|
||||||
{
|
{
|
||||||
bool makePoly = false;
|
bool makePoly = false;
|
||||||
|
|
||||||
@ -4257,7 +4257,7 @@ void SMESH_Pattern::createElements(SMESH_Mesh* theMes
|
|||||||
bool is2d = myIs2D;
|
bool is2d = myIs2D;
|
||||||
|
|
||||||
list< TElemDef >::const_iterator enIt = theElemNodeIDs.begin();
|
list< TElemDef >::const_iterator enIt = theElemNodeIDs.begin();
|
||||||
list< vector<int> >::iterator quantity = myPolyhedronQuantities.begin();
|
list< vector<smIdType> >::iterator quantity = myPolyhedronQuantities.begin();
|
||||||
for ( int iElem = 0; enIt != theElemNodeIDs.end(); enIt++, iElem++ )
|
for ( int iElem = 0; enIt != theElemNodeIDs.end(); enIt++, iElem++ )
|
||||||
{
|
{
|
||||||
const TElemDef & elemNodeInd = *enIt;
|
const TElemDef & elemNodeInd = *enIt;
|
||||||
|
@ -28,6 +28,7 @@
|
|||||||
#define SMESH_Pattern_HeaderFile
|
#define SMESH_Pattern_HeaderFile
|
||||||
|
|
||||||
#include "SMESH_SMESH.hxx"
|
#include "SMESH_SMESH.hxx"
|
||||||
|
#include <smIdType.hxx>
|
||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <list>
|
#include <list>
|
||||||
@ -328,7 +329,7 @@ private:
|
|||||||
const int theNbBndNodes,
|
const int theNbBndNodes,
|
||||||
const std::vector< const SMDS_MeshNode* >& theNodes,
|
const std::vector< const SMDS_MeshNode* >& theNodes,
|
||||||
std::list< int >& theFaceDefs,
|
std::list< int >& theFaceDefs,
|
||||||
std::vector<int>& theQuantity);
|
std::vector<smIdType>& theQuantity);
|
||||||
// fill faces definition for a volume face defined by theBndNodes
|
// fill faces definition for a volume face defined by theBndNodes
|
||||||
// return true if a face definition changes
|
// return true if a face definition changes
|
||||||
|
|
||||||
@ -392,7 +393,7 @@ private:
|
|||||||
std::vector<const SMDS_MeshElement*> myPolyElems;
|
std::vector<const SMDS_MeshElement*> myPolyElems;
|
||||||
// definitions of new poly elements
|
// definitions of new poly elements
|
||||||
std::list< TElemDef > myPolyElemXYZIDs;
|
std::list< TElemDef > myPolyElemXYZIDs;
|
||||||
std::list< std::vector<int> > myPolyhedronQuantities;
|
std::list< std::vector<smIdType> > myPolyhedronQuantities;
|
||||||
|
|
||||||
// map a boundary to XYZs on it;
|
// map a boundary to XYZs on it;
|
||||||
// a boundary (edge or face) is defined as a set of its nodes,
|
// a boundary (edge or face) is defined as a set of its nodes,
|
||||||
|
@ -424,7 +424,7 @@ namespace
|
|||||||
}
|
}
|
||||||
|
|
||||||
int aNbFaces = anIndexes[anIndexId++];
|
int aNbFaces = anIndexes[anIndexId++];
|
||||||
std::vector<int> quantities (aNbFaces);
|
std::vector<smIdType> quantities (aNbFaces);
|
||||||
for (int i = 0; i < aNbFaces; i++) {
|
for (int i = 0; i < aNbFaces; i++) {
|
||||||
quantities[i] = anIndexes[anIndexId++];
|
quantities[i] = anIndexes[anIndexId++];
|
||||||
}
|
}
|
||||||
|
@ -160,8 +160,8 @@ void SMESHDS_Command::AddFace(int NewFaceID,
|
|||||||
//function :
|
//function :
|
||||||
//purpose :
|
//purpose :
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
void SMESHDS_Command::AddVolume(int NewVolID,
|
void SMESHDS_Command::AddVolume(smIdType NewVolID,
|
||||||
int idnode1, int idnode2, int idnode3, int idnode4)
|
smIdType idnode1, smIdType idnode2, smIdType idnode3, smIdType idnode4)
|
||||||
{
|
{
|
||||||
if ( myType != SMESHDS_AddTetrahedron)
|
if ( myType != SMESHDS_AddTetrahedron)
|
||||||
{
|
{
|
||||||
@ -180,8 +180,8 @@ void SMESHDS_Command::AddVolume(int NewVolID,
|
|||||||
//function :
|
//function :
|
||||||
//purpose :
|
//purpose :
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
void SMESHDS_Command::AddVolume(int NewVolID,
|
void SMESHDS_Command::AddVolume(smIdType NewVolID,
|
||||||
int idnode1, int idnode2, int idnode3, int idnode4, int idnode5)
|
smIdType idnode1, smIdType idnode2, smIdType idnode3, smIdType idnode4, smIdType idnode5)
|
||||||
{
|
{
|
||||||
if ( myType != SMESHDS_AddPyramid)
|
if ( myType != SMESHDS_AddPyramid)
|
||||||
{
|
{
|
||||||
@ -201,9 +201,9 @@ void SMESHDS_Command::AddVolume(int NewVolID,
|
|||||||
//function :
|
//function :
|
||||||
//purpose :
|
//purpose :
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
void SMESHDS_Command::AddVolume(int NewVolID,
|
void SMESHDS_Command::AddVolume(smIdType NewVolID,
|
||||||
int idnode1,
|
smIdType idnode1,
|
||||||
int idnode2, int idnode3, int idnode4, int idnode5, int idnode6)
|
smIdType idnode2, smIdType idnode3, smIdType idnode4, smIdType idnode5, smIdType idnode6)
|
||||||
{
|
{
|
||||||
if ( myType != SMESHDS_AddPrism)
|
if ( myType != SMESHDS_AddPrism)
|
||||||
{
|
{
|
||||||
@ -224,11 +224,11 @@ void SMESHDS_Command::AddVolume(int NewVolID,
|
|||||||
//function :
|
//function :
|
||||||
//purpose :
|
//purpose :
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
void SMESHDS_Command::AddVolume(int NewVolID,
|
void SMESHDS_Command::AddVolume(smIdType NewVolID,
|
||||||
int idnode1,
|
smIdType idnode1,
|
||||||
int idnode2,
|
smIdType idnode2,
|
||||||
int idnode3,
|
smIdType idnode3,
|
||||||
int idnode4, int idnode5, int idnode6, int idnode7, int idnode8)
|
smIdType idnode4, smIdType idnode5, smIdType idnode6, smIdType idnode7, smIdType idnode8)
|
||||||
{
|
{
|
||||||
if ( myType != SMESHDS_AddHexahedron)
|
if ( myType != SMESHDS_AddHexahedron)
|
||||||
{
|
{
|
||||||
@ -247,10 +247,10 @@ void SMESHDS_Command::AddVolume(int NewVolID,
|
|||||||
myNumber++;
|
myNumber++;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SMESHDS_Command::AddVolume(int NewVolID,
|
void SMESHDS_Command::AddVolume(smIdType NewVolID,
|
||||||
int idnode1,int idnode2,int idnode3,int idnode4,
|
smIdType idnode1,smIdType idnode2,smIdType idnode3,smIdType idnode4,
|
||||||
int idnode5, int idnode6, int idnode7, int idnode8,
|
smIdType idnode5, smIdType idnode6, smIdType idnode7, smIdType idnode8,
|
||||||
int idnode9, int idnode10, int idnode11, int idnode12)
|
smIdType idnode9, smIdType idnode10, smIdType idnode11, smIdType idnode12)
|
||||||
{
|
{
|
||||||
if (myType != SMESHDS_AddHexagonalPrism)
|
if (myType != SMESHDS_AddHexagonalPrism)
|
||||||
{
|
{
|
||||||
@ -323,7 +323,7 @@ void SMESHDS_Command::AddQuadPolygonalFace (const smIdType Element
|
|||||||
//=======================================================================
|
//=======================================================================
|
||||||
void SMESHDS_Command::AddPolyhedralVolume (const smIdType ElementID,
|
void SMESHDS_Command::AddPolyhedralVolume (const smIdType ElementID,
|
||||||
const std::vector<smIdType>& nodes_ids,
|
const std::vector<smIdType>& nodes_ids,
|
||||||
const std::vector<int>& quantities)
|
const std::vector<smIdType>& quantities)
|
||||||
{
|
{
|
||||||
if ( myType != SMESHDS_AddPolyhedron) {
|
if ( myType != SMESHDS_AddPolyhedron) {
|
||||||
MESSAGE("SMESHDS_Command::AddPolyhedralVolume : Bad Type");
|
MESSAGE("SMESHDS_Command::AddPolyhedralVolume : Bad Type");
|
||||||
|
@ -45,24 +45,24 @@ class SMESHDS_EXPORT SMESHDS_Command
|
|||||||
void AddFace(int NewFaceID, int idnode1, int idnode2, int idnode3);
|
void AddFace(int NewFaceID, int idnode1, int idnode2, int idnode3);
|
||||||
void AddFace(int NewFaceID, int idnode1, int idnode2, int idnode3,
|
void AddFace(int NewFaceID, int idnode1, int idnode2, int idnode3,
|
||||||
int idnode4);
|
int idnode4);
|
||||||
void AddVolume(int NewVolID, int idnode1, int idnode2, int idnode3,
|
void AddVolume(smIdType NewVolID, smIdType idnode1, smIdType idnode2, smIdType idnode3,
|
||||||
int idnode4);
|
smIdType idnode4);
|
||||||
void AddVolume(int NewVolID, int idnode1, int idnode2, int idnode3,
|
void AddVolume(smIdType NewVolID, smIdType idnode1, smIdType idnode2, smIdType idnode3,
|
||||||
int idnode4, int idnode5);
|
smIdType idnode4, smIdType idnode5);
|
||||||
void AddVolume(int NewVolID, int idnode1, int idnode2, int idnode3,
|
void AddVolume(smIdType NewVolID, smIdType idnode1, smIdType idnode2, smIdType idnode3,
|
||||||
int idnode4, int idnode5, int idnode6);
|
smIdType idnode4, smIdType idnode5, smIdType idnode6);
|
||||||
void AddVolume(int NewVolID, int idnode1, int idnode2, int idnode3,
|
void AddVolume(smIdType NewVolID, smIdType idnode1, smIdType idnode2, smIdType idnode3,
|
||||||
int idnode4, int idnode5, int idnode6, int idnode7, int idnode8);
|
smIdType idnode4, smIdType idnode5, smIdType idnode6, smIdType idnode7, smIdType idnode8);
|
||||||
void AddVolume(int NewVolID, int idnode1, int idnode2, int idnode3,
|
void AddVolume(smIdType NewVolID, smIdType idnode1, smIdType idnode2, smIdType idnode3,
|
||||||
int idnode4, int idnode5, int idnode6, int idnode7, int idnode8,
|
smIdType idnode4, smIdType idnode5, smIdType idnode6, smIdType idnode7, smIdType idnode8,
|
||||||
int idnode9, int idnode10, int idnode11, int idnode12);
|
smIdType idnode9, smIdType idnode10, smIdType idnode11, smIdType idnode12);
|
||||||
void AddPolygonalFace (const smIdType ElementID,
|
void AddPolygonalFace (const smIdType ElementID,
|
||||||
const std::vector<smIdType>& nodes_ids);
|
const std::vector<smIdType>& nodes_ids);
|
||||||
void AddQuadPolygonalFace (const smIdType ElementID,
|
void AddQuadPolygonalFace (const smIdType ElementID,
|
||||||
const std::vector<smIdType>& nodes_ids);
|
const std::vector<smIdType>& nodes_ids);
|
||||||
void AddPolyhedralVolume (const smIdType ElementID,
|
void AddPolyhedralVolume (const smIdType ElementID,
|
||||||
const std::vector<smIdType>& nodes_ids,
|
const std::vector<smIdType>& nodes_ids,
|
||||||
const std::vector<int>& quantities);
|
const std::vector<smIdType>& quantities);
|
||||||
void AddBall(int NewBallID, int node, double diameter);
|
void AddBall(int NewBallID, int node, double diameter);
|
||||||
// special methods for quadratic elements
|
// special methods for quadratic elements
|
||||||
void AddEdge(int NewEdgeID, int n1, int n2, int n12);
|
void AddEdge(int NewEdgeID, int n1, int n2, int n12);
|
||||||
|
@ -790,7 +790,7 @@ SMESHDS_Mesh::AddQuadPolygonalFace (const std::vector<const SMDS_MeshNode*>& nod
|
|||||||
//purpose :
|
//purpose :
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
SMDS_MeshVolume* SMESHDS_Mesh::AddPolyhedralVolumeWithID (const std::vector<smIdType>& nodes_ids,
|
SMDS_MeshVolume* SMESHDS_Mesh::AddPolyhedralVolumeWithID (const std::vector<smIdType>& nodes_ids,
|
||||||
const std::vector<int>& quantities,
|
const std::vector<smIdType>& quantities,
|
||||||
const smIdType ID)
|
const smIdType ID)
|
||||||
{
|
{
|
||||||
SMDS_MeshVolume *anElem = SMDS_Mesh::AddPolyhedralVolumeWithID(nodes_ids, quantities, ID);
|
SMDS_MeshVolume *anElem = SMDS_Mesh::AddPolyhedralVolumeWithID(nodes_ids, quantities, ID);
|
||||||
@ -802,7 +802,7 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddPolyhedralVolumeWithID (const std::vector<smId
|
|||||||
|
|
||||||
SMDS_MeshVolume* SMESHDS_Mesh::AddPolyhedralVolumeWithID
|
SMDS_MeshVolume* SMESHDS_Mesh::AddPolyhedralVolumeWithID
|
||||||
(const std::vector<const SMDS_MeshNode*>& nodes,
|
(const std::vector<const SMDS_MeshNode*>& nodes,
|
||||||
const std::vector<int>& quantities,
|
const std::vector<smIdType>& quantities,
|
||||||
const smIdType ID)
|
const smIdType ID)
|
||||||
{
|
{
|
||||||
SMDS_MeshVolume *anElem = SMDS_Mesh::AddPolyhedralVolumeWithID(nodes, quantities, ID);
|
SMDS_MeshVolume *anElem = SMDS_Mesh::AddPolyhedralVolumeWithID(nodes, quantities, ID);
|
||||||
@ -819,7 +819,7 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddPolyhedralVolumeWithID
|
|||||||
|
|
||||||
SMDS_MeshVolume* SMESHDS_Mesh::AddPolyhedralVolume
|
SMDS_MeshVolume* SMESHDS_Mesh::AddPolyhedralVolume
|
||||||
(const std::vector<const SMDS_MeshNode*>& nodes,
|
(const std::vector<const SMDS_MeshNode*>& nodes,
|
||||||
const std::vector<int>& quantities)
|
const std::vector<smIdType>& quantities)
|
||||||
{
|
{
|
||||||
SMDS_MeshVolume *anElem = SMDS_Mesh::AddPolyhedralVolume(nodes, quantities);
|
SMDS_MeshVolume *anElem = SMDS_Mesh::AddPolyhedralVolume(nodes, quantities);
|
||||||
if (anElem) {
|
if (anElem) {
|
||||||
|
@ -567,17 +567,17 @@ class SMESHDS_EXPORT SMESHDS_Mesh : public SMDS_Mesh
|
|||||||
|
|
||||||
virtual SMDS_MeshVolume* AddPolyhedralVolumeWithID
|
virtual SMDS_MeshVolume* AddPolyhedralVolumeWithID
|
||||||
(const std::vector<smIdType>& nodes_ids,
|
(const std::vector<smIdType>& nodes_ids,
|
||||||
const std::vector<int>& quantities,
|
const std::vector<smIdType>& quantities,
|
||||||
const smIdType ID);
|
const smIdType ID);
|
||||||
|
|
||||||
virtual SMDS_MeshVolume* AddPolyhedralVolumeWithID
|
virtual SMDS_MeshVolume* AddPolyhedralVolumeWithID
|
||||||
(const std::vector<const SMDS_MeshNode*>& nodes,
|
(const std::vector<const SMDS_MeshNode*>& nodes,
|
||||||
const std::vector<int>& quantities,
|
const std::vector<smIdType>& quantities,
|
||||||
const smIdType ID);
|
const smIdType ID);
|
||||||
|
|
||||||
virtual SMDS_MeshVolume* AddPolyhedralVolume
|
virtual SMDS_MeshVolume* AddPolyhedralVolume
|
||||||
(const std::vector<const SMDS_MeshNode*>& nodes,
|
(const std::vector<const SMDS_MeshNode*>& nodes,
|
||||||
const std::vector<int>& quantities);
|
const std::vector<smIdType>& quantities);
|
||||||
|
|
||||||
virtual void MoveNode(const SMDS_MeshNode *, double x, double y, double z);
|
virtual void MoveNode(const SMDS_MeshNode *, double x, double y, double z);
|
||||||
virtual void RemoveNode(const SMDS_MeshNode *);
|
virtual void RemoveNode(const SMDS_MeshNode *);
|
||||||
|
@ -160,9 +160,9 @@ void SMESHDS_Script::AddFace(int NewFaceID,
|
|||||||
//function :
|
//function :
|
||||||
//purpose :
|
//purpose :
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
void SMESHDS_Script::AddVolume(int NewID,
|
void SMESHDS_Script::AddVolume(smIdType NewID,
|
||||||
int idnode1, int idnode2,
|
smIdType idnode1, smIdType idnode2,
|
||||||
int idnode3, int idnode4)
|
smIdType idnode3, smIdType idnode4)
|
||||||
{
|
{
|
||||||
if(myIsEmbeddedMode){
|
if(myIsEmbeddedMode){
|
||||||
myIsModified = true;
|
myIsModified = true;
|
||||||
@ -177,9 +177,9 @@ void SMESHDS_Script::AddVolume(int NewID,
|
|||||||
//function :
|
//function :
|
||||||
//purpose :
|
//purpose :
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
void SMESHDS_Script::AddVolume(int NewID,
|
void SMESHDS_Script::AddVolume(smIdType NewID,
|
||||||
int idnode1, int idnode2,
|
smIdType idnode1, smIdType idnode2,
|
||||||
int idnode3, int idnode4, int idnode5)
|
smIdType idnode3, smIdType idnode4, smIdType idnode5)
|
||||||
{
|
{
|
||||||
if(myIsEmbeddedMode){
|
if(myIsEmbeddedMode){
|
||||||
myIsModified = true;
|
myIsModified = true;
|
||||||
@ -194,9 +194,9 @@ void SMESHDS_Script::AddVolume(int NewID,
|
|||||||
//function :
|
//function :
|
||||||
//purpose :
|
//purpose :
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
void SMESHDS_Script::AddVolume(int NewID,
|
void SMESHDS_Script::AddVolume(smIdType NewID,
|
||||||
int idnode1, int idnode2, int idnode3,
|
smIdType idnode1, smIdType idnode2, smIdType idnode3,
|
||||||
int idnode4, int idnode5, int idnode6)
|
smIdType idnode4, smIdType idnode5, smIdType idnode6)
|
||||||
{
|
{
|
||||||
if(myIsEmbeddedMode){
|
if(myIsEmbeddedMode){
|
||||||
myIsModified = true;
|
myIsModified = true;
|
||||||
@ -211,9 +211,9 @@ void SMESHDS_Script::AddVolume(int NewID,
|
|||||||
//function :
|
//function :
|
||||||
//purpose :
|
//purpose :
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
void SMESHDS_Script::AddVolume(int NewID,
|
void SMESHDS_Script::AddVolume(smIdType NewID,
|
||||||
int idnode1, int idnode2, int idnode3, int idnode4,
|
smIdType idnode1, smIdType idnode2, smIdType idnode3, smIdType idnode4,
|
||||||
int idnode5, int idnode6, int idnode7, int idnode8)
|
smIdType idnode5, smIdType idnode6, smIdType idnode7, smIdType idnode8)
|
||||||
{
|
{
|
||||||
if(myIsEmbeddedMode){
|
if(myIsEmbeddedMode){
|
||||||
myIsModified = true;
|
myIsModified = true;
|
||||||
@ -228,9 +228,9 @@ void SMESHDS_Script::AddVolume(int NewID,
|
|||||||
//function :
|
//function :
|
||||||
//purpose :
|
//purpose :
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
void SMESHDS_Script::AddVolume(int NewVolID, int idnode1, int idnode2, int idnode3,
|
void SMESHDS_Script::AddVolume(smIdType NewVolID, smIdType idnode1, smIdType idnode2, smIdType idnode3,
|
||||||
int idnode4, int idnode5, int idnode6, int idnode7, int idnode8,
|
smIdType idnode4, smIdType idnode5, smIdType idnode6, smIdType idnode7, smIdType idnode8,
|
||||||
int idnode9, int idnode10, int idnode11, int idnode12)
|
smIdType idnode9, smIdType idnode10, smIdType idnode11, smIdType idnode12)
|
||||||
{
|
{
|
||||||
if(myIsEmbeddedMode){
|
if(myIsEmbeddedMode){
|
||||||
myIsModified = true;
|
myIsModified = true;
|
||||||
@ -274,7 +274,7 @@ void SMESHDS_Script::AddQuadPolygonalFace(smIdType NewFaceID, const std::vector<
|
|||||||
//=======================================================================
|
//=======================================================================
|
||||||
void SMESHDS_Script::AddPolyhedralVolume (smIdType NewID,
|
void SMESHDS_Script::AddPolyhedralVolume (smIdType NewID,
|
||||||
const std::vector<smIdType>& nodes_ids,
|
const std::vector<smIdType>& nodes_ids,
|
||||||
const std::vector<int>& quantities)
|
const std::vector<smIdType>& quantities)
|
||||||
{
|
{
|
||||||
if(myIsEmbeddedMode){
|
if(myIsEmbeddedMode){
|
||||||
myIsModified = true;
|
myIsModified = true;
|
||||||
|
@ -52,17 +52,17 @@ class SMESHDS_EXPORT SMESHDS_Script
|
|||||||
void AddFace(int NewFaceID, int idnode1, int idnode2, int idnode3);
|
void AddFace(int NewFaceID, int idnode1, int idnode2, int idnode3);
|
||||||
void AddFace(int NewFaceID, int idnode1, int idnode2, int idnode3,
|
void AddFace(int NewFaceID, int idnode1, int idnode2, int idnode3,
|
||||||
int idnode4);
|
int idnode4);
|
||||||
void AddVolume(int NewVolID, int idnode1, int idnode2, int idnode3,
|
void AddVolume(smIdType NewVolID, smIdType idnode1, smIdType idnode2, smIdType idnode3,
|
||||||
int idnode4);
|
smIdType idnode4);
|
||||||
void AddVolume(int NewVolID, int idnode1, int idnode2, int idnode3,
|
void AddVolume(smIdType NewVolID, smIdType idnode1, smIdType idnode2, smIdType idnode3,
|
||||||
int idnode4, int idnode5);
|
smIdType idnode4, smIdType idnode5);
|
||||||
void AddVolume(int NewVolID, int idnode1, int idnode2, int idnode3,
|
void AddVolume(smIdType NewVolID, smIdType idnode1, smIdType idnode2, smIdType idnode3,
|
||||||
int idnode4, int idnode5, int idnode6);
|
smIdType idnode4, smIdType idnode5, smIdType idnode6);
|
||||||
void AddVolume(int NewVolID, int idnode1, int idnode2, int idnode3,
|
void AddVolume(smIdType NewVolID, smIdType idnode1, smIdType idnode2, smIdType idnode3,
|
||||||
int idnode4, int idnode5, int idnode6, int idnode7, int idnode8);
|
smIdType idnode4, smIdType idnode5, smIdType idnode6, smIdType idnode7, smIdType idnode8);
|
||||||
void AddVolume(int NewVolID, int idnode1, int idnode2, int idnode3,
|
void AddVolume(smIdType NewVolID, smIdType idnode1, smIdType idnode2, smIdType idnode3,
|
||||||
int idnode4, int idnode5, int idnode6, int idnode7, int idnode8,
|
smIdType idnode4, smIdType idnode5, smIdType idnode6, smIdType idnode7, smIdType idnode8,
|
||||||
int idnode9, int idnode10, int idnode11, int idnode12);
|
smIdType idnode9, smIdType idnode10, smIdType idnode11, smIdType idnode12);
|
||||||
|
|
||||||
void AddPolygonalFace (const smIdType NewFaceID,
|
void AddPolygonalFace (const smIdType NewFaceID,
|
||||||
const std::vector<smIdType>& nodes_ids);
|
const std::vector<smIdType>& nodes_ids);
|
||||||
@ -70,7 +70,7 @@ class SMESHDS_EXPORT SMESHDS_Script
|
|||||||
const std::vector<smIdType>& nodes_ids);
|
const std::vector<smIdType>& nodes_ids);
|
||||||
void AddPolyhedralVolume (const smIdType NewVolID,
|
void AddPolyhedralVolume (const smIdType NewVolID,
|
||||||
const std::vector<smIdType>& nodes_ids,
|
const std::vector<smIdType>& nodes_ids,
|
||||||
const std::vector<int>& quantities);
|
const std::vector<smIdType>& quantities);
|
||||||
void AddBall(int NewBallID, int node, double diameter);
|
void AddBall(int NewBallID, int node, double diameter);
|
||||||
|
|
||||||
// special methods for quadratic elements
|
// special methods for quadratic elements
|
||||||
|
@ -277,7 +277,7 @@ namespace
|
|||||||
|
|
||||||
static Standard_Integer HashCode(const CutFace& f, const Standard_Integer upper)
|
static Standard_Integer HashCode(const CutFace& f, const Standard_Integer upper)
|
||||||
{
|
{
|
||||||
return ::HashCode( (int)(f.myInitFace->GetID()), upper );
|
return ::HashCode( FromIdType<int>(f.myInitFace->GetID()), upper );
|
||||||
}
|
}
|
||||||
static Standard_Boolean IsEqual(const CutFace& f1, const CutFace& f2 )
|
static Standard_Boolean IsEqual(const CutFace& f1, const CutFace& f2 )
|
||||||
{
|
{
|
||||||
|
@ -1190,7 +1190,7 @@ CORBA::Long SMESH_MeshEditor_i::AddPolyhedralVolume (const SMESH::long_array & I
|
|||||||
}
|
}
|
||||||
|
|
||||||
int NbFaces = Quantities.length();
|
int NbFaces = Quantities.length();
|
||||||
std::vector<int> q (NbFaces);
|
std::vector<smIdType> q (NbFaces);
|
||||||
for (int j = 0; j < NbFaces; j++)
|
for (int j = 0; j < NbFaces; j++)
|
||||||
q[j] = Quantities[j];
|
q[j] = Quantities[j];
|
||||||
|
|
||||||
@ -1220,7 +1220,7 @@ CORBA::Long SMESH_MeshEditor_i::AddPolyhedralVolumeByFaces (const SMESH::long_ar
|
|||||||
|
|
||||||
int NbFaces = IdsOfFaces.length();
|
int NbFaces = IdsOfFaces.length();
|
||||||
std::vector<const SMDS_MeshNode*> poly_nodes;
|
std::vector<const SMDS_MeshNode*> poly_nodes;
|
||||||
std::vector<int> quantities (NbFaces);
|
std::vector<smIdType> quantities (NbFaces);
|
||||||
|
|
||||||
for (int i = 0; i < NbFaces; i++) {
|
for (int i = 0; i < NbFaces; i++) {
|
||||||
const SMDS_MeshElement* aFace = getMeshDS()->FindElement(IdsOfFaces[i]);
|
const SMDS_MeshElement* aFace = getMeshDS()->FindElement(IdsOfFaces[i]);
|
||||||
|
@ -818,7 +818,7 @@ namespace
|
|||||||
};
|
};
|
||||||
|
|
||||||
vector< _nodeDef > _nodes;
|
vector< _nodeDef > _nodes;
|
||||||
vector< int > _quantities;
|
vector< smIdType > _quantities;
|
||||||
_volumeDef* _next; // to store several _volumeDefs in a chain
|
_volumeDef* _next; // to store several _volumeDefs in a chain
|
||||||
TGeomID _solidID;
|
TGeomID _solidID;
|
||||||
const SMDS_MeshElement* _volume; // new volume
|
const SMDS_MeshElement* _volume; // new volume
|
||||||
@ -5257,7 +5257,7 @@ namespace
|
|||||||
if ( loopsJoined )
|
if ( loopsJoined )
|
||||||
{
|
{
|
||||||
// set unchanged polygons
|
// set unchanged polygons
|
||||||
std::vector< int > newQuantities;
|
std::vector< smIdType > newQuantities;
|
||||||
std::vector< _volumeDef::_nodeDef > newNodes;
|
std::vector< _volumeDef::_nodeDef > newNodes;
|
||||||
vector< SMESH_Block::TShapeID > newNames;
|
vector< SMESH_Block::TShapeID > newNames;
|
||||||
newQuantities.reserve( volDef->_quantities.size() );
|
newQuantities.reserve( volDef->_quantities.size() );
|
||||||
|
@ -63,7 +63,7 @@ namespace
|
|||||||
//=======================================================================
|
//=======================================================================
|
||||||
|
|
||||||
const SMDS_MeshElement* addHexa( std::vector< const SMDS_MeshElement* >& faces,
|
const SMDS_MeshElement* addHexa( std::vector< const SMDS_MeshElement* >& faces,
|
||||||
const std::vector< int > & quantities,
|
const std::vector< smIdType > & quantities,
|
||||||
SMESH_MesherHelper & helper )
|
SMESH_MesherHelper & helper )
|
||||||
{
|
{
|
||||||
const SMDS_MeshElement* newHexa = 0;
|
const SMDS_MeshElement* newHexa = 0;
|
||||||
@ -134,7 +134,7 @@ namespace
|
|||||||
//=======================================================================
|
//=======================================================================
|
||||||
|
|
||||||
const SMDS_MeshElement* addTetra( std::vector< const SMDS_MeshElement* >& faces,
|
const SMDS_MeshElement* addTetra( std::vector< const SMDS_MeshElement* >& faces,
|
||||||
const std::vector< int > & quantities,
|
const std::vector< smIdType > & quantities,
|
||||||
SMESH_MesherHelper & helper )
|
SMESH_MesherHelper & helper )
|
||||||
{
|
{
|
||||||
const SMDS_MeshElement* newTetra = 0;
|
const SMDS_MeshElement* newTetra = 0;
|
||||||
@ -173,7 +173,7 @@ namespace
|
|||||||
//=======================================================================
|
//=======================================================================
|
||||||
|
|
||||||
const SMDS_MeshElement* addPenta( std::vector< const SMDS_MeshElement* >& faces,
|
const SMDS_MeshElement* addPenta( std::vector< const SMDS_MeshElement* >& faces,
|
||||||
const std::vector< int > & quantities,
|
const std::vector< smIdType > & quantities,
|
||||||
SMESH_MesherHelper & helper )
|
SMESH_MesherHelper & helper )
|
||||||
{
|
{
|
||||||
const SMDS_MeshElement* newPenta = 0;
|
const SMDS_MeshElement* newPenta = 0;
|
||||||
@ -232,7 +232,7 @@ namespace
|
|||||||
//=======================================================================
|
//=======================================================================
|
||||||
|
|
||||||
const SMDS_MeshElement* addPyra( std::vector< const SMDS_MeshElement* >& faces,
|
const SMDS_MeshElement* addPyra( std::vector< const SMDS_MeshElement* >& faces,
|
||||||
const std::vector< int > & quantities,
|
const std::vector< smIdType > & quantities,
|
||||||
SMESH_MesherHelper & helper )
|
SMESH_MesherHelper & helper )
|
||||||
{
|
{
|
||||||
const SMDS_MeshElement* newPyra = 0;
|
const SMDS_MeshElement* newPyra = 0;
|
||||||
@ -276,7 +276,7 @@ namespace
|
|||||||
//=======================================================================
|
//=======================================================================
|
||||||
|
|
||||||
const SMDS_MeshElement* addHPrism( std::vector< const SMDS_MeshElement* >& faces,
|
const SMDS_MeshElement* addHPrism( std::vector< const SMDS_MeshElement* >& faces,
|
||||||
const std::vector< int > & quantities,
|
const std::vector< smIdType > & quantities,
|
||||||
SMESH_MesherHelper & helper )
|
SMESH_MesherHelper & helper )
|
||||||
{
|
{
|
||||||
const SMDS_MeshElement* newHexPrism = 0;
|
const SMDS_MeshElement* newHexPrism = 0;
|
||||||
@ -357,7 +357,7 @@ namespace
|
|||||||
//=======================================================================
|
//=======================================================================
|
||||||
|
|
||||||
const SMDS_MeshElement* addPoly( std::vector< const SMDS_MeshElement* >& faces,
|
const SMDS_MeshElement* addPoly( std::vector< const SMDS_MeshElement* >& faces,
|
||||||
const std::vector< int > & quantities,
|
const std::vector< smIdType > & quantities,
|
||||||
SMESH_MesherHelper & helper )
|
SMESH_MesherHelper & helper )
|
||||||
{
|
{
|
||||||
const SMDS_MeshElement* newPoly = 0;
|
const SMDS_MeshElement* newPoly = 0;
|
||||||
@ -508,7 +508,7 @@ bool StdMeshers_PolyhedronPerSolid_3D::Compute(SMESH_Mesh& theMesh,
|
|||||||
for ( size_t i = 0; i < faces.size() && !useMediumNodes ; ++i )
|
for ( size_t i = 0; i < faces.size() && !useMediumNodes ; ++i )
|
||||||
useMediumNodes = faces[ i ]->IsQuadratic();
|
useMediumNodes = faces[ i ]->IsQuadratic();
|
||||||
|
|
||||||
std::vector< int > quantities( faces.size() );
|
std::vector< smIdType > quantities( faces.size() );
|
||||||
std::set< const SMDS_MeshNode* > nodes;
|
std::set< const SMDS_MeshNode* > nodes;
|
||||||
for ( size_t i = 0; i < faces.size(); ++i )
|
for ( size_t i = 0; i < faces.size(); ++i )
|
||||||
{
|
{
|
||||||
|
@ -2329,7 +2329,7 @@ bool StdMeshers_Prism_3D::AddPrisms( vector<const TNodeColumn*> & columns,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default: // ---------- polyhedra
|
default: // ---------- polyhedra
|
||||||
vector<int> quantities( 2 + nbNodes, 4 );
|
vector<smIdType> quantities( 2 + nbNodes, 4 );
|
||||||
quantities[0] = quantities[1] = nbNodes;
|
quantities[0] = quantities[1] = nbNodes;
|
||||||
columns.resize( nbNodes + 1 );
|
columns.resize( nbNodes + 1 );
|
||||||
columns[ nbNodes ] = columns[ 0 ];
|
columns[ nbNodes ] = columns[ 0 ];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user