if( ierr != 0 ) goto ERREUR;
//qualites de la triangulation actuelle
- qualitetrte_( mnpxyd, mosoar, mxsoar, mnsoar, moartr, mxartr, mnartr,
+ qualitetrte( mnpxyd, mosoar, mxsoar, mnsoar, moartr, mxartr, mnartr,
nbt, quamoy, quamin );
// boucle sur les aretes internes (non sur une ligne de la frontiere)
<< d << " secondes");
//qualites de la triangulation actuelle
- qualitetrte_( mnpxyd, mosoar, mxsoar, mnsoar, moartr, mxartr, mnartr,
+ qualitetrte( mnpxyd, mosoar, mxsoar, mnsoar, moartr, mxartr, mnartr,
nbt, quamoy, quamin );
// detection des aretes frontalieres initiales perdues
if( ierr != 0 ) goto ERREUR;
//qualites de la triangulation actuelle
- qualitetrte_( mnpxyd, mosoar, mxsoar, mnsoar, moartr, mxartr, mnartr,
+ qualitetrte( mnpxyd, mosoar, mxsoar, mnsoar, moartr, mxartr, mnartr,
nbt, quamoy, quamin );
// fin de la triangulation avec respect des aretes initiales frontalieres
if( ierr != 0 ) goto ERREUR;
//qualites de la triangulation actuelle
- qualitetrte_( mnpxyd, mosoar, mxsoar, mnsoar, moartr, mxartr, mnartr,
+ qualitetrte( mnpxyd, mosoar, mxsoar, mnsoar, moartr, mxartr, mnartr,
nbt, quamoy, quamin );
// amelioration de la qualite de la triangulation par
cout << "aptrte: MC saturee mnarcf3=" << mnarcf3 << endl;
goto ERREUR;
}
- teamqt_( nutysu, aretmx, airemx,
+ teamqt( nutysu, aretmx, airemx,
mnarst, mosoar, mxsoar, n1soar, mnsoar,
moartr, mxartr, n1artr, mnartr,
mxarcf, mnarcf2, mnarcf3,
if( ierr != 0 ) goto ERREUR;
//qualites de la triangulation finale
- qualitetrte_( mnpxyd, mosoar, mxsoar, mnsoar, moartr, mxartr, mnartr,
+ qualitetrte( mnpxyd, mosoar, mxsoar, mnsoar, moartr, mxartr, mnartr,
nbt, quamoy, quamin );
// renumerotation des sommets internes: mnarst(i)=numero final du sommet
goto NETTOYAGE;
}
}
-
-
-void qualitetrte_( R3 *mnpxyd,
+void
+#ifdef WIN32
+ __stdcall
+#endif
+ qualitetrte( R3 *mnpxyd,
Z & mosoar, Z & mxsoar, Z *mnsoar,
Z & moartr, Z & mxartr, Z *mnartr,
Z & nbtria, R & quamoy, R & quamin )
if( quamin<0.3 )
{
//le numero des 3 sommets du triangle ntqmin de qualite minimale
- nusotr_( ntqmin, mosoar, mnsoar, moartr, mnartr, nosotr );
+ nusotr(ntqmin, mosoar, mnsoar, moartr, mnartr, nosotr );
MESSAGE("Triangle de qualite minimale "<<quamin<<" de sommets:"
<<nosotr[0]<<" "<<nosotr[1]<<" "<<nosotr[2]<<" ");
for (int i=0;i<3;i++)
#define MEFISTO2D_EXPORT
#endif
-extern "C" {
-void qualitetrte_( R3 *mnpxyd,
- Z & mosoar, Z & mxsoar, Z *mnsoar,
- Z & moartr, Z & mxartr, Z *mnartr,
- Z & nbtria, R & quamoy, R & quamin ); }
-// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-// but : calculer la qualite moyenne et minimale de la triangulation
-// ----- actuelle definie par les tableaux nosoar et noartr
-// entrees:
-// --------
-// mnpxyd : tableau des coordonnees 2d des points
-// par point : x y distance_souhaitee
-// mosoar : nombre maximal d'entiers par arete et
-// indice dans nosoar de l'arete suivante dans le hachage
-// mxsoar : nombre maximal d'aretes stockables dans le tableau nosoar
-// attention: mxsoar>3*mxsomm obligatoire!
-// nosoar : numero des 2 sommets , no ligne, 2 triangles de l'arete,
-// chainage des aretes frontalieres, chainage du hachage des aretes
-// hachage des aretes = nosoar(1)+nosoar(2)*2
-// avec mxsoar>=3*mxsomm
-// une arete i de nosoar est vide <=> nosoar(1,i)=0 et
-// nosoar(2,arete vide)=l'arete vide qui precede
-// nosoar(3,arete vide)=l'arete vide qui suit
-// moartr : nombre maximal d'entiers par arete du tableau noartr
-// mxartr : nombre maximal de triangles declarables
-// noartr : les 3 aretes des triangles +-arete1, +-arete2, +-arete3
-// arete1 = 0 si triangle vide => arete2 = triangle vide suivant
-// sorties:
-// --------
-// nbtria : nombre de triangles internes au domaine
-// quamoy : qualite moyenne des triangles actuels
-// quamin : qualite minimale des triangles actuels
-// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
MEFISTO2D_EXPORT
void aptrte( Z nutysu, R aretmx,
#define nusotr NUSOTR
#define qutr2d QUTR2D
#define surtd2 SURTD2
+ #define qualitetrte QUALITETRTE
#define areteideale ARETEIDEALE
#define nusotr nusotr_
#define qutr2d qutr2d_
#define surtd2 surtd2_
+ #define qualitetrte qualitetrte_
#define areteideale areteideale_
#endif
+extern "C" { void
+#ifdef WIN32
+ __stdcall
+#endif
+ qualitetrte( R3 *mnpxyd,
+ Z & mosoar, Z & mxsoar, Z *mnsoar,
+ Z & moartr, Z & mxartr, Z *mnartr,
+ Z & nbtria, R & quamoy, R & quamin ); }
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+// but : calculer la qualite moyenne et minimale de la triangulation
+// ----- actuelle definie par les tableaux nosoar et noartr
+// entrees:
+// --------
+// mnpxyd : tableau des coordonnees 2d des points
+// par point : x y distance_souhaitee
+// mosoar : nombre maximal d'entiers par arete et
+// indice dans nosoar de l'arete suivante dans le hachage
+// mxsoar : nombre maximal d'aretes stockables dans le tableau nosoar
+// attention: mxsoar>3*mxsomm obligatoire!
+// nosoar : numero des 2 sommets , no ligne, 2 triangles de l'arete,
+// chainage des aretes frontalieres, chainage du hachage des aretes
+// hachage des aretes = nosoar(1)+nosoar(2)*2
+// avec mxsoar>=3*mxsomm
+// une arete i de nosoar est vide <=> nosoar(1,i)=0 et
+// nosoar(2,arete vide)=l'arete vide qui precede
+// nosoar(3,arete vide)=l'arete vide qui suit
+// moartr : nombre maximal d'entiers par arete du tableau noartr
+// mxartr : nombre maximal de triangles declarables
+// noartr : les 3 aretes des triangles +-arete1, +-arete2, +-arete3
+// arete1 = 0 si triangle vide => arete2 = triangle vide suivant
+// sorties:
+// --------
+// nbtria : nombre de triangles internes au domaine
+// quamoy : qualite moyenne des triangles actuels
+// quamin : qualite minimale des triangles actuels
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
extern "C" { void
#ifdef WIN32
__stdcall
///Abstract class for iterators
///@author Jerome Robert
///////////////////////////////////////////////////////////////////////////////
-template<typename VALUE> class SMDS_EXPORT SMDS_Iterator
+template<typename VALUE> class SMDS_Iterator
{
public:
/// Return true if and only if there are other object in this iterator
- virtual bool more()=0;
+ virtual bool more()=0;
/// Return the current object and step to the next one
- virtual VALUE next()=0;
+ virtual VALUE next()=0;
/// Delete the current element and step to the next one
virtual void remove(){}
#ifndef _SMESH_0D_ALGO_HXX_
#define _SMESH_0D_ALGO_HXX_
+#include "SMESH_SMESH.hxx"
+
#include "SMESH_Algo.hxx"
-class SMESH_0D_Algo: public SMESH_Algo
+class SMESH_EXPORT SMESH_0D_Algo: public SMESH_Algo
{
public:
SMESH_0D_Algo(int hypId, int studyId, SMESH_Gen* gen);
#ifndef _SMESH_0D_ALGO_I_HXX_
#define _SMESH_0D_ALGO_I_HXX_
+#include "SMESH.hxx"
+
#include <SALOMEconfig.h>
#include CORBA_SERVER_HEADER(SMESH_Hypothesis)
// ======================================================
// Generic 0D algorithm
// ======================================================
-class SMESH_0D_Algo_i:
+class SMESH_I_EXPORT SMESH_0D_Algo_i:
public virtual POA_SMESH::SMESH_0D_Algo,
public virtual SMESH_Algo_i
{
for ( CORBA::Long i = 0; llIt != aListOfListOfNodes.end(); llIt++, i++ ) {
list< const SMDS_MeshNode* >& aListOfNodes = *llIt;
list< const SMDS_MeshNode* >::iterator lIt = aListOfNodes.begin();;
- SMESH::long_array& aGroup = GroupsOfNodes[ i ];
+ SMESH::long_array& aGroup = (*GroupsOfNodes)[i];
aGroup.length( aListOfNodes.size() );
for ( int j = 0; lIt != aListOfNodes.end(); lIt++, j++ )
aGroup[ j ] = (*lIt)->GetID();
::SMESH_MeshEditor::TListOfListOfElementsID::iterator arraysIt = aListOfListOfElementsID.begin();
for (CORBA::Long j = 0; arraysIt != aListOfListOfElementsID.end(); ++arraysIt, ++j) {
- SMESH::long_array& aGroup = GroupsOfElementsID[ j ];
+ SMESH::long_array& aGroup = (*GroupsOfElementsID)[ j ];
TListOfIDs& listOfIDs = *arraysIt;
aGroup.length( listOfIDs.size() );
TListOfIDs::iterator idIt = listOfIDs.begin();
#define _SMESH_CompositeSegment_1D_HXX_
#include "StdMeshers_Regular_1D.hxx"
+#include "SMESH_StdMeshers.hxx"
class SMESH_subMeshEventListener;
class SMESH_Mesh;
class TopoDS_Edge;
class TopoDS_Face;
-class StdMeshers_CompositeSegment_1D: public StdMeshers_Regular_1D
+class STDMESHERS_EXPORT StdMeshers_CompositeSegment_1D: public StdMeshers_Regular_1D
{
public:
StdMeshers_CompositeSegment_1D(int hypId, int studyId, SMESH_Gen* gen);
/*!
* \brief Return an edge from which hypotheses are propagated from
*/
- static TopoDS_Edge GetSource(SMESH_subMesh * submesh);
+ static TopoDS_Edge GetSource(SMESH_subMesh * submesh) { return TopoDS_Edge(); };
/*!
* \brief Does it's main job
*/
#ifndef _SMESH_SegmentAroundVertex_0D_HXX_
#define _SMESH_SegmentAroundVertex_0D_HXX_
+#include "SMESH_StdMeshers.hxx"
+
#include "SMESH_0D_Algo.hxx"
/*!
* \brief Algorithm existing in order just to enable assignation of
* StdMeshers_SegmentLengthAroundVertex hypothesis
*/
-class StdMeshers_SegmentAroundVertex_0D: public SMESH_0D_Algo
+class STDMESHERS_EXPORT StdMeshers_SegmentAroundVertex_0D: public SMESH_0D_Algo
{
public:
StdMeshers_SegmentAroundVertex_0D(int hypId, int studyId, SMESH_Gen* gen);
#ifndef _SMESH_SegmentLengthAroundVertex_HXX_
#define _SMESH_SegmentLengthAroundVertex_HXX_
+#include "SMESH_StdMeshers.hxx"
+
#include "SMESH_Hypothesis.hxx"
#include "Utils_SALOME_Exception.hxx"
* \brief This hypothesis specifies length of segments adjacent to the vertex the
* hypothesis is assigned to
*/
-class StdMeshers_SegmentLengthAroundVertex:public SMESH_Hypothesis
+class STDMESHERS_EXPORT StdMeshers_SegmentLengthAroundVertex:public SMESH_Hypothesis
{
public:
StdMeshers_SegmentLengthAroundVertex(int hypId, int studyId, SMESH_Gen * gen);