mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-04-09 03:17:27 +05:00
*** empty log message ***
This commit is contained in:
parent
578ea7c219
commit
04fa66f92d
@ -190,14 +190,23 @@ void aptrte( Z nutysu, R aretmx,
|
|||||||
mnsoar = new Z[mosoar*mxsoar];
|
mnsoar = new Z[mosoar*mxsoar];
|
||||||
if( mnsoar==NULL ) goto ERREUR;
|
if( mnsoar==NULL ) goto ERREUR;
|
||||||
//initialiser le tableau mnsoar pour le hachage des aretes
|
//initialiser le tableau mnsoar pour le hachage des aretes
|
||||||
|
#ifdef DFORTRAN
|
||||||
|
INSOAR( mxsomm, mosoar, mxsoar, n1soar, mnsoar );
|
||||||
|
#else
|
||||||
insoar_( mxsomm, mosoar, mxsoar, n1soar, mnsoar );
|
insoar_( mxsomm, mosoar, mxsoar, n1soar, mnsoar );
|
||||||
|
#endif
|
||||||
|
|
||||||
// mnarst( mxsomm ) numero mnsoar d'une arete pour chacun des sommets
|
// mnarst( mxsomm ) numero mnsoar d'une arete pour chacun des sommets
|
||||||
if( mnarst!=NULL ) delete [] mnarst;
|
if( mnarst!=NULL ) delete [] mnarst;
|
||||||
mnarst = new Z[1+mxsomm];
|
mnarst = new Z[1+mxsomm];
|
||||||
if( mnarst==NULL ) goto ERREUR;
|
if( mnarst==NULL ) goto ERREUR;
|
||||||
n = 1+mxsomm;
|
n = 1+mxsomm;
|
||||||
|
|
||||||
|
#ifdef DFORTRAN
|
||||||
|
AZEROI( n, mnarst );
|
||||||
|
#else
|
||||||
azeroi_( n, mnarst );
|
azeroi_( n, mnarst );
|
||||||
|
#endif
|
||||||
|
|
||||||
// mnslig( mxsomm ) no de sommet dans sa ligne pour chaque sommet frontalier
|
// mnslig( mxsomm ) no de sommet dans sa ligne pour chaque sommet frontalier
|
||||||
// ou no du point si interne forc'e par l'utilisateur
|
// ou no du point si interne forc'e par l'utilisateur
|
||||||
@ -205,7 +214,11 @@ void aptrte( Z nutysu, R aretmx,
|
|||||||
if( mnslig!=NULL ) delete [] mnslig;
|
if( mnslig!=NULL ) delete [] mnslig;
|
||||||
mnslig = new Z[mxsomm];
|
mnslig = new Z[mxsomm];
|
||||||
if( mnslig==NULL ) goto ERREUR;
|
if( mnslig==NULL ) goto ERREUR;
|
||||||
|
#ifdef DFORTRAN
|
||||||
|
AZEROI( mxsomm, mnslig );
|
||||||
|
#else
|
||||||
azeroi_( mxsomm, mnslig );
|
azeroi_( mxsomm, mnslig );
|
||||||
|
#endif
|
||||||
|
|
||||||
// initialisation des aretes frontalieres de la triangulation future
|
// initialisation des aretes frontalieres de la triangulation future
|
||||||
// renumerotation des sommets des aretes des lignes pour la triangulation
|
// renumerotation des sommets des aretes des lignes pour la triangulation
|
||||||
@ -230,8 +243,8 @@ void aptrte( Z nutysu, R aretmx,
|
|||||||
// << " " << mnpxyd[ns0].y << " longueur arete=" << mnpxyd[ns0].z);
|
// << " " << mnpxyd[ns0].y << " longueur arete=" << mnpxyd[ns0].z);
|
||||||
|
|
||||||
//carre de la longueur de l'arete 1 de la ligne fermee n
|
//carre de la longueur de l'arete 1 de la ligne fermee n
|
||||||
d = pow( uvslf[ns0+1].x - uvslf[ns0].x, 2 )
|
d = pow( uvslf[ns0+1].x - uvslf[ns0].x, 2 );
|
||||||
+ pow( uvslf[ns0+1].y - uvslf[ns0].y, 2 ) ;
|
d = d + pow( uvslf[ns0+1].y - uvslf[ns0].y, 2 ) ;
|
||||||
aremin = Min( aremin, d );
|
aremin = Min( aremin, d );
|
||||||
aremax = Max( aremax, d );
|
aremax = Max( aremax, d );
|
||||||
|
|
||||||
@ -247,7 +260,11 @@ void aptrte( Z nutysu, R aretmx,
|
|||||||
|
|
||||||
//le numero n de la ligne du sommet et son numero ns1 dans la ligne
|
//le numero n de la ligne du sommet et son numero ns1 dans la ligne
|
||||||
mnslig[ns0-1] = 1000000 * n + ns1-nudslf[n-1];
|
mnslig[ns0-1] = 1000000 * n + ns1-nudslf[n-1];
|
||||||
|
#ifdef DFORTRAN
|
||||||
|
FASOAR( ns1, ns2, moins1, moins1, n,
|
||||||
|
#else
|
||||||
fasoar_( ns1, ns2, moins1, moins1, n,
|
fasoar_( ns1, ns2, moins1, moins1, n,
|
||||||
|
#endif
|
||||||
mosoar, mxsoar, n1soar, mnsoar, mnarst,
|
mosoar, mxsoar, n1soar, mnsoar, mnarst,
|
||||||
noar0, ierr );
|
noar0, ierr );
|
||||||
//pas de test sur ierr car pas de saturation possible a ce niveau
|
//pas de test sur ierr car pas de saturation possible a ce niveau
|
||||||
@ -282,8 +299,8 @@ void aptrte( Z nutysu, R aretmx,
|
|||||||
// << " " << mnpxyd[ns].y << " longueur arete=" << mnpxyd[ns].z);
|
// << " " << mnpxyd[ns].y << " longueur arete=" << mnpxyd[ns].z);
|
||||||
|
|
||||||
//carre de la longueur de l'arete
|
//carre de la longueur de l'arete
|
||||||
d = pow( uvslf[ns2-1].x - uvslf[ns1-1].x, 2)
|
d = pow( uvslf[ns2-1].x - uvslf[ns1-1].x, 2);
|
||||||
+ pow( uvslf[ns2-1].y - uvslf[ns1-1].y, 2);
|
d = d + pow( uvslf[ns2-1].y - uvslf[ns1-1].y, 2);
|
||||||
aremin = Min( aremin, d );
|
aremin = Min( aremin, d );
|
||||||
aremax = Max( aremax, d );
|
aremax = Max( aremax, d );
|
||||||
|
|
||||||
@ -291,7 +308,11 @@ void aptrte( Z nutysu, R aretmx,
|
|||||||
mnslig[ns] = 1000000 * n + ns1-nudslf[n-1];
|
mnslig[ns] = 1000000 * n + ns1-nudslf[n-1];
|
||||||
|
|
||||||
//ajout de l'arete dans la liste
|
//ajout de l'arete dans la liste
|
||||||
|
#ifdef DFORTRAN
|
||||||
|
FASOAR( ns1, ns2, moins1, moins1, n,
|
||||||
|
#else
|
||||||
fasoar_( ns1, ns2, moins1, moins1, n,
|
fasoar_( ns1, ns2, moins1, moins1, n,
|
||||||
|
#endif
|
||||||
mosoar, mxsoar, n1soar, mnsoar,
|
mosoar, mxsoar, n1soar, mnsoar,
|
||||||
mnarst, noar, ierr );
|
mnarst, noar, ierr );
|
||||||
//pas de test sur ierr car pas de saturation possible a ce niveau
|
//pas de test sur ierr car pas de saturation possible a ce niveau
|
||||||
@ -359,7 +380,11 @@ void aptrte( Z nutysu, R aretmx,
|
|||||||
if( mntree==NULL ) goto ERREUR;
|
if( mntree==NULL ) goto ERREUR;
|
||||||
|
|
||||||
//initialisation du tableau letree et ajout dans letree des sommets 1 a nbsomm
|
//initialisation du tableau letree et ajout dans letree des sommets 1 a nbsomm
|
||||||
|
#ifdef DFORTRAN
|
||||||
|
TEAJTE( mxsomm, nbsomm, mnpxyd, comxmi, aretmx, mxtree, mntree, ierr );
|
||||||
|
#else
|
||||||
teajte_( mxsomm, nbsomm, mnpxyd, comxmi, aretmx, mxtree, mntree, ierr );
|
teajte_( mxsomm, nbsomm, mnpxyd, comxmi, aretmx, mxtree, mntree, ierr );
|
||||||
|
#endif
|
||||||
comxmi[0].z=0;
|
comxmi[0].z=0;
|
||||||
comxmi[1].z=0;
|
comxmi[1].z=0;
|
||||||
|
|
||||||
@ -387,7 +412,11 @@ void aptrte( Z nutysu, R aretmx,
|
|||||||
mnqueu = new Z[mxqueu];
|
mnqueu = new Z[mxqueu];
|
||||||
if( mnqueu==NULL) goto ERREUR;
|
if( mnqueu==NULL) goto ERREUR;
|
||||||
|
|
||||||
|
#ifdef DFORTRAN
|
||||||
|
TEHOTE( nutysu, nbarpi, mxsomm, nbsomm, mnpxyd,
|
||||||
|
#else
|
||||||
tehote_( nutysu, nbarpi, mxsomm, nbsomm, mnpxyd,
|
tehote_( nutysu, nbarpi, mxsomm, nbsomm, mnpxyd,
|
||||||
|
#endif
|
||||||
comxmi, aretmx,
|
comxmi, aretmx,
|
||||||
mntree, mxqueu, mnqueu,
|
mntree, mxqueu, mnqueu,
|
||||||
ierr );
|
ierr );
|
||||||
@ -414,7 +443,11 @@ void aptrte( Z nutysu, R aretmx,
|
|||||||
// trianguler les triangles equilateraux feuilles a partir de leurs 3 sommets
|
// trianguler les triangles equilateraux feuilles a partir de leurs 3 sommets
|
||||||
// et des points de la frontiere, des points internes imposes interieurs
|
// et des points de la frontiere, des points internes imposes interieurs
|
||||||
// ==========================================================================
|
// ==========================================================================
|
||||||
|
#ifdef DFORTRAN
|
||||||
|
TETRTE( comxmi, aretmx, nbarpi, mxsomm, mnpxyd,
|
||||||
|
#else
|
||||||
tetrte_( comxmi, aretmx, nbarpi, mxsomm, mnpxyd,
|
tetrte_( comxmi, aretmx, nbarpi, mxsomm, mnpxyd,
|
||||||
|
#endif
|
||||||
mxqueu, mnqueu, mntree, mosoar, mxsoar, n1soar, mnsoar,
|
mxqueu, mnqueu, mntree, mosoar, mxsoar, n1soar, mnsoar,
|
||||||
moartr, mxartr, n1artr, mnartr, mnarst,
|
moartr, mxartr, n1artr, mnartr, mnarst,
|
||||||
ierr );
|
ierr );
|
||||||
@ -443,8 +476,14 @@ void aptrte( Z nutysu, R aretmx,
|
|||||||
// avec echange des 2 diagonales afin de rendre la triangulation delaunay
|
// avec echange des 2 diagonales afin de rendre la triangulation delaunay
|
||||||
// ======================================================================
|
// ======================================================================
|
||||||
// formation du chainage 6 des aretes internes a echanger eventuellement
|
// formation du chainage 6 des aretes internes a echanger eventuellement
|
||||||
|
#ifdef DFORTRAN
|
||||||
|
AISOAR( mosoar, mxsoar, mnsoar, na );
|
||||||
|
TEDELA( mnpxyd, mnarst,
|
||||||
|
#else
|
||||||
aisoar_( mosoar, mxsoar, mnsoar, na );
|
aisoar_( mosoar, mxsoar, mnsoar, na );
|
||||||
tedela_( mnpxyd, mnarst,
|
tedela_( mnpxyd, mnarst,
|
||||||
|
#endif
|
||||||
|
|
||||||
mosoar, mxsoar, n1soar, mnsoar, na,
|
mosoar, mxsoar, n1soar, mnsoar, na,
|
||||||
moartr, mxartr, n1artr, mnartr, n );
|
moartr, mxartr, n1artr, mnartr, n );
|
||||||
|
|
||||||
@ -475,7 +514,11 @@ void aptrte( Z nutysu, R aretmx,
|
|||||||
mnarcf2 = new Z[mxarcf];
|
mnarcf2 = new Z[mxarcf];
|
||||||
if( mnarcf2 == NULL ) goto ERREUR;
|
if( mnarcf2 == NULL ) goto ERREUR;
|
||||||
|
|
||||||
|
#ifdef DFORTRAN
|
||||||
|
TEREFR( nbarpi, mnpxyd,
|
||||||
|
#else
|
||||||
terefr_( nbarpi, mnpxyd,
|
terefr_( nbarpi, mnpxyd,
|
||||||
|
#endif
|
||||||
mosoar, mxsoar, n1soar, mnsoar,
|
mosoar, mxsoar, n1soar, mnsoar,
|
||||||
moartr, n1artr, mnartr, mnarst,
|
moartr, n1artr, mnartr, mnarst,
|
||||||
mxarcf, mn1arcf, mnarcf, mnarcf1, mnarcf2,
|
mxarcf, mn1arcf, mnarcf, mnarcf1, mnarcf2,
|
||||||
@ -516,7 +559,11 @@ void aptrte( Z nutysu, R aretmx,
|
|||||||
for (n=0; n<nblf; n++) //numero de la ligne fermee de 1 a nblf
|
for (n=0; n<nblf; n++) //numero de la ligne fermee de 1 a nblf
|
||||||
mnlftr[n] = n+1;
|
mnlftr[n] = n+1;
|
||||||
|
|
||||||
|
#ifdef DFORTRAN
|
||||||
|
TESUEX( nblf, mnlftr,
|
||||||
|
#else
|
||||||
tesuex_( nblf, mnlftr,
|
tesuex_( nblf, mnlftr,
|
||||||
|
#endif
|
||||||
ndtri0, nbsomm, mnpxyd, mnslig,
|
ndtri0, nbsomm, mnpxyd, mnslig,
|
||||||
mosoar, mxsoar, mnsoar,
|
mosoar, mxsoar, mnsoar,
|
||||||
moartr, mxartr, n1artr, mnartr, mnarst,
|
moartr, mxartr, n1artr, mnartr, mnarst,
|
||||||
@ -543,7 +590,11 @@ void aptrte( Z nutysu, R aretmx,
|
|||||||
mnarcf3 = new Z[mxarcf];
|
mnarcf3 = new Z[mxarcf];
|
||||||
if( mnarcf3 == NULL ) goto ERREUR;
|
if( mnarcf3 == NULL ) goto ERREUR;
|
||||||
|
|
||||||
|
#ifdef DFORTRAN
|
||||||
|
TEAMQT( nutysu,
|
||||||
|
#else
|
||||||
teamqt_( nutysu,
|
teamqt_( nutysu,
|
||||||
|
#endif
|
||||||
mnarst, mosoar, mxsoar, n1soar, mnsoar,
|
mnarst, mosoar, mxsoar, n1soar, mnsoar,
|
||||||
moartr, mxartr, n1artr, mnartr,
|
moartr, mxartr, n1artr, mnartr,
|
||||||
mxarcf, mnarcf2, mnarcf3,
|
mxarcf, mnarcf2, mnarcf3,
|
||||||
@ -575,7 +626,11 @@ void aptrte( Z nutysu, R aretmx,
|
|||||||
if( mnartr[nt*moartr-moartr] != 0 )
|
if( mnartr[nt*moartr-moartr] != 0 )
|
||||||
{
|
{
|
||||||
//le numero des 3 sommets du triangle nt
|
//le numero des 3 sommets du triangle nt
|
||||||
|
#ifdef DFORTRAN
|
||||||
|
NUSOTR( nt, mosoar, mnsoar, moartr, mnartr, nosotr );
|
||||||
|
#else
|
||||||
nusotr_( nt, mosoar, mnsoar, moartr, mnartr, nosotr );
|
nusotr_( nt, mosoar, mnsoar, moartr, mnartr, nosotr );
|
||||||
|
#endif
|
||||||
//les 3 sommets du triangle sont actifs
|
//les 3 sommets du triangle sont actifs
|
||||||
mnarst[ nosotr[0] ] = 1;
|
mnarst[ nosotr[0] ] = 1;
|
||||||
mnarst[ nosotr[1] ] = 1;
|
mnarst[ nosotr[1] ] = 1;
|
||||||
@ -643,7 +698,11 @@ void aptrte( Z nutysu, R aretmx,
|
|||||||
if( mnartr[i*moartr-moartr] != 0 )
|
if( mnartr[i*moartr-moartr] != 0 )
|
||||||
{
|
{
|
||||||
//le triangle i est interne => nosotr numero de ses 3 sommets
|
//le triangle i est interne => nosotr numero de ses 3 sommets
|
||||||
|
#ifdef DFORTRAN
|
||||||
|
NUSOTR( i, mosoar, mnsoar, moartr, mnartr, nosotr );
|
||||||
|
#else
|
||||||
nusotr_( i, mosoar, mnsoar, moartr, mnartr, nosotr );
|
nusotr_( i, mosoar, mnsoar, moartr, mnartr, nosotr );
|
||||||
|
#endif
|
||||||
nust[nbt++] = mnarst[ nosotr[0] ];
|
nust[nbt++] = mnarst[ nosotr[0] ];
|
||||||
nust[nbt++] = mnarst[ nosotr[1] ];
|
nust[nbt++] = mnarst[ nosotr[1] ];
|
||||||
nust[nbt++] = mnarst[ nosotr[2] ];
|
nust[nbt++] = mnarst[ nosotr[2] ];
|
||||||
@ -747,10 +806,18 @@ void qualitetrte( R3 *mnpxyd,
|
|||||||
nbtria++;
|
nbtria++;
|
||||||
|
|
||||||
//le numero des 3 sommets du triangle nt
|
//le numero des 3 sommets du triangle nt
|
||||||
|
#ifdef DFORTRAN
|
||||||
|
NUSOTR( nt, mosoar, mnsoar, moartr, mnartr, nosotr );
|
||||||
|
#else
|
||||||
nusotr_( nt, mosoar, mnsoar, moartr, mnartr, nosotr );
|
nusotr_( nt, mosoar, mnsoar, moartr, mnartr, nosotr );
|
||||||
|
#endif
|
||||||
|
|
||||||
//la qualite du triangle ns1 ns2 ns3
|
//la qualite du triangle ns1 ns2 ns3
|
||||||
|
#ifdef DFORTRAN
|
||||||
|
QUTR2D( mnpxyd[nosotr[0]-1], mnpxyd[nosotr[1]-1], mnpxyd[nosotr[2]-1],
|
||||||
|
#else
|
||||||
qutr2d_( mnpxyd[nosotr[0]-1], mnpxyd[nosotr[1]-1], mnpxyd[nosotr[2]-1],
|
qutr2d_( mnpxyd[nosotr[0]-1], mnpxyd[nosotr[1]-1], mnpxyd[nosotr[2]-1],
|
||||||
|
#endif
|
||||||
qualite );
|
qualite );
|
||||||
|
|
||||||
//la qualite moyenne
|
//la qualite moyenne
|
||||||
@ -760,7 +827,12 @@ void qualitetrte( R3 *mnpxyd,
|
|||||||
quamin = Min( quamin, qualite );
|
quamin = Min( quamin, qualite );
|
||||||
|
|
||||||
//aire signee du triangle nt
|
//aire signee du triangle nt
|
||||||
|
#ifdef DFORTRAN
|
||||||
|
d = SURTD2( mnpxyd[nosotr[0]-1], mnpxyd[nosotr[1]-1], mnpxyd[nosotr[2]-1] );
|
||||||
|
#else
|
||||||
d = surtd2_( mnpxyd[nosotr[0]-1], mnpxyd[nosotr[1]-1], mnpxyd[nosotr[2]-1] );
|
d = surtd2_( mnpxyd[nosotr[0]-1], mnpxyd[nosotr[1]-1], mnpxyd[nosotr[2]-1] );
|
||||||
|
#endif
|
||||||
|
|
||||||
if( d<0 )
|
if( d<0 )
|
||||||
{
|
{
|
||||||
//un triangle d'aire negative de plus
|
//un triangle d'aire negative de plus
|
||||||
|
@ -141,19 +141,61 @@ MEFISTO2D_EXPORT
|
|||||||
// auteur : Alain Perronnet Analyse Numerique Paris UPMC decembre 2001
|
// auteur : Alain Perronnet Analyse Numerique Paris UPMC decembre 2001
|
||||||
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
|
||||||
extern "C" { void tempscpu_( double & tempsec ); }
|
extern "C" { void
|
||||||
|
#ifdef WIN32
|
||||||
|
__stdcall
|
||||||
|
#endif
|
||||||
|
#ifdef DFORTRAN
|
||||||
|
TEMPSCPU( double & tempsec ); }
|
||||||
|
#else
|
||||||
|
tempscpu_( double & tempsec ); }
|
||||||
|
#endif
|
||||||
|
|
||||||
//Retourne le temps CPU utilise en secondes
|
//Retourne le temps CPU utilise en secondes
|
||||||
|
|
||||||
extern "C" { void deltacpu_( R & dtcpu ); }
|
extern "C" { void
|
||||||
|
#ifdef WIN32
|
||||||
|
__stdcall
|
||||||
|
#endif
|
||||||
|
#ifdef DFORTRAN
|
||||||
|
DELTACPU( R & dtcpu ); }
|
||||||
|
#else
|
||||||
|
deltacpu_( R & dtcpu ); }
|
||||||
|
#endif
|
||||||
|
|
||||||
//Retourne le temps CPU utilise en secondes depuis le precedent appel
|
//Retourne le temps CPU utilise en secondes depuis le precedent appel
|
||||||
|
|
||||||
//initialiser le tableau mnsoar pour le hachage des aretes
|
//initialiser le tableau mnsoar pour le hachage des aretes
|
||||||
extern "C" {void insoar_( Z & mxsomm, Z & mosoar, Z & mxsoar, Z & n1soar, Z * mnsoar );}
|
extern "C" {void
|
||||||
|
#ifdef WIN32
|
||||||
|
__stdcall
|
||||||
|
#endif
|
||||||
|
#ifdef DFORTRAN
|
||||||
|
INSOAR( Z & mxsomm, Z & mosoar, Z & mxsoar, Z & n1soar, Z * mnsoar );}
|
||||||
|
#else
|
||||||
|
insoar_( Z & mxsomm, Z & mosoar, Z & mxsoar, Z & n1soar, Z * mnsoar );}
|
||||||
|
#endif
|
||||||
|
|
||||||
//mettre a zero les nb entiers de tab
|
//mettre a zero les nb entiers de tab
|
||||||
extern "C" {void azeroi_( Z & nb, Z * tab );}
|
extern "C" {void
|
||||||
|
#ifdef WIN32
|
||||||
|
__stdcall
|
||||||
|
#endif
|
||||||
|
#ifdef DFORTRAN
|
||||||
|
AZEROI( Z & nb, Z * tab );}
|
||||||
|
#else
|
||||||
|
azeroi_( Z & nb, Z * tab );}
|
||||||
|
#endif
|
||||||
|
|
||||||
extern "C" {void fasoar_( Z & ns1, Z & ns2, Z & nt1, Z & nt2, Z & nolign,
|
extern "C" {void
|
||||||
|
#ifdef WIN32
|
||||||
|
__stdcall
|
||||||
|
#endif
|
||||||
|
#ifdef DFORTRAN
|
||||||
|
FASOAR( Z & ns1, Z & ns2, Z & nt1, Z & nt2, Z & nolign,
|
||||||
|
#else
|
||||||
|
fasoar_( Z & ns1, Z & ns2, Z & nt1, Z & nt2, Z & nolign,
|
||||||
|
#endif
|
||||||
Z & mosoar, Z & mxsoar, Z & n1soar, Z * mnsoar, Z * mnarst,
|
Z & mosoar, Z & mxsoar, Z & n1soar, Z * mnsoar, Z * mnarst,
|
||||||
Z & noar, Z & ierr );}
|
Z & noar, Z & ierr );}
|
||||||
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
@ -200,19 +242,46 @@ extern "C" {void fasoar_( Z & ns1, Z & ns2, Z & nt1, Z & nt2, Z & nolign,
|
|||||||
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
|
||||||
//initialisation du tableau letree et ajout dans letree des sommets 1 a nbsomm
|
//initialisation du tableau letree et ajout dans letree des sommets 1 a nbsomm
|
||||||
extern "C" {void teajte_( Z & mxsomm, Z & nbsomm, R3 * mnpxyd, R3 * comxmi,
|
extern "C" {void
|
||||||
|
#ifdef WIN32
|
||||||
|
__stdcall
|
||||||
|
#endif
|
||||||
|
#ifdef DFORTRAN
|
||||||
|
TEAJTE
|
||||||
|
#else
|
||||||
|
teajte_
|
||||||
|
#endif
|
||||||
|
( Z & mxsomm, Z & nbsomm, R3 * mnpxyd, R3 * comxmi,
|
||||||
R & aretmx, Z & mxtree, Z * letree,
|
R & aretmx, Z & mxtree, Z * letree,
|
||||||
Z & ierr );}
|
Z & ierr );}
|
||||||
|
|
||||||
|
|
||||||
extern "C" {void tehote_( Z & nutysu, Z & nbarpi, Z & mxsomm, Z & nbsomm, R3 * mnpxyd,
|
extern "C" {void
|
||||||
|
#ifdef WIN32
|
||||||
|
__stdcall
|
||||||
|
#endif
|
||||||
|
#ifdef DFORTRAN
|
||||||
|
TEHOTE
|
||||||
|
#else
|
||||||
|
tehote_
|
||||||
|
#endif
|
||||||
|
( Z & nutysu, Z & nbarpi, Z & mxsomm, Z & nbsomm, R3 * mnpxyd,
|
||||||
R3 * comxmi, R & aretmx,
|
R3 * comxmi, R & aretmx,
|
||||||
Z * letree, Z & mxqueu, Z * mnqueu,
|
Z * letree, Z & mxqueu, Z * mnqueu,
|
||||||
Z & ierr );}
|
Z & ierr );}
|
||||||
// homogeneisation de l'arbre des te a un saut de taille au plus
|
// homogeneisation de l'arbre des te a un saut de taille au plus
|
||||||
// prise en compte des tailles d'aretes souhaitees autour des sommets initiaux
|
// prise en compte des tailles d'aretes souhaitees autour des sommets initiaux
|
||||||
|
|
||||||
extern "C" {void tetrte_( R3 * comxmi, R & aretmx, Z & nbarpi, Z & mxsomm, R3 * mnpxyd,
|
extern "C" {void
|
||||||
|
#ifdef WIN32
|
||||||
|
__stdcall
|
||||||
|
#endif
|
||||||
|
#ifdef DFORTRAN
|
||||||
|
TETRTE
|
||||||
|
#else
|
||||||
|
tetrte_
|
||||||
|
#endif
|
||||||
|
( R3 * comxmi, R & aretmx, Z & nbarpi, Z & mxsomm, R3 * mnpxyd,
|
||||||
Z & mxqueu, Z * mnqueu, Z * mntree,
|
Z & mxqueu, Z * mnqueu, Z * mntree,
|
||||||
Z & mosoar, Z & mxsoar, Z & n1soar, Z * mnsoar,
|
Z & mosoar, Z & mxsoar, Z & n1soar, Z * mnsoar,
|
||||||
Z & moartr, Z & mxartr, Z & n1artr, Z * mnartr, Z * mnarst,
|
Z & moartr, Z & mxartr, Z & n1artr, Z * mnartr, Z * mnarst,
|
||||||
@ -220,16 +289,43 @@ extern "C" {void tetrte_( R3 * comxmi, R & aretmx, Z & nbarpi, Z & mxsomm, R3 *
|
|||||||
// trianguler les triangles equilateraux feuilles a partir de leurs 3 sommets
|
// trianguler les triangles equilateraux feuilles a partir de leurs 3 sommets
|
||||||
// et des points de la frontiere, des points internes imposes interieurs
|
// et des points de la frontiere, des points internes imposes interieurs
|
||||||
|
|
||||||
extern "C" {void aisoar_( Z & mosoar, Z & mxsoar, Z * mnsoar, Z & na );}
|
extern "C" {void
|
||||||
|
#ifdef WIN32
|
||||||
|
__stdcall
|
||||||
|
#endif
|
||||||
|
#ifdef DFORTRAN
|
||||||
|
AISOAR
|
||||||
|
#else
|
||||||
|
aisoar_
|
||||||
|
#endif
|
||||||
|
( Z & mosoar, Z & mxsoar, Z * mnsoar, Z & na );}
|
||||||
// formation du chainage 6 des aretes internes a echanger eventuellement
|
// formation du chainage 6 des aretes internes a echanger eventuellement
|
||||||
|
|
||||||
extern "C" {void tedela_( R3 * mnpxyd, Z * mnarst,
|
extern "C" {void
|
||||||
|
#ifdef WIN32
|
||||||
|
__stdcall
|
||||||
|
#endif
|
||||||
|
#ifdef DFORTRAN
|
||||||
|
TEDELA
|
||||||
|
#else
|
||||||
|
tedela_
|
||||||
|
#endif
|
||||||
|
( R3 * mnpxyd, Z * mnarst,
|
||||||
Z & mosoar, Z & mxsoar, Z & n1soar, Z * mnsoar, Z & na,
|
Z & mosoar, Z & mxsoar, Z & n1soar, Z * mnsoar, Z & na,
|
||||||
Z & moartr, Z & mxartr, Z & n1artr, Z * mnartr, Z & n );}
|
Z & moartr, Z & mxartr, Z & n1artr, Z * mnartr, Z & n );}
|
||||||
// boucle sur les aretes internes (non sur une ligne de la frontiere)
|
// boucle sur les aretes internes (non sur une ligne de la frontiere)
|
||||||
// avec echange des 2 diagonales afin de rendre la triangulation delaunay
|
// avec echange des 2 diagonales afin de rendre la triangulation delaunay
|
||||||
|
|
||||||
extern "C" {void terefr_( Z & nbarpi, R3 * mnpxyd,
|
extern "C" {void
|
||||||
|
#ifdef WIN32
|
||||||
|
__stdcall
|
||||||
|
#endif
|
||||||
|
#ifdef DFORTRAN
|
||||||
|
TEREFR
|
||||||
|
#else
|
||||||
|
terefr_
|
||||||
|
#endif
|
||||||
|
( Z & nbarpi, R3 * mnpxyd,
|
||||||
Z & mosoar, Z & mxsoar, Z & n1soar, Z * mnsoar,
|
Z & mosoar, Z & mxsoar, Z & n1soar, Z * mnsoar,
|
||||||
Z & moartr, Z & n1artr, Z * mnartr, Z * mnarst,
|
Z & moartr, Z & n1artr, Z * mnartr, Z * mnarst,
|
||||||
Z & mxarcf, Z * mnarc1, Z * mnarc2,
|
Z & mxarcf, Z * mnarc1, Z * mnarc2,
|
||||||
@ -238,14 +334,32 @@ extern "C" {void terefr_( Z & nbarpi, R3 * mnpxyd,
|
|||||||
// detection des aretes frontalieres initiales perdues
|
// detection des aretes frontalieres initiales perdues
|
||||||
// triangulation frontale pour les restaurer
|
// triangulation frontale pour les restaurer
|
||||||
|
|
||||||
extern "C" {void tesuex_( Z & nblf, Z * nulftr,
|
extern "C" {void
|
||||||
|
#ifdef WIN32
|
||||||
|
__stdcall
|
||||||
|
#endif
|
||||||
|
#ifdef DFORTRAN
|
||||||
|
TESUEX
|
||||||
|
#else
|
||||||
|
tesuex_
|
||||||
|
#endif
|
||||||
|
( Z & nblf, Z * nulftr,
|
||||||
Z & ndtri0, Z & nbsomm, R3 * mnpxyd, Z * mnslig,
|
Z & ndtri0, Z & nbsomm, R3 * mnpxyd, Z * mnslig,
|
||||||
Z & mosoar, Z & mxsoar, Z * mnsoar,
|
Z & mosoar, Z & mxsoar, Z * mnsoar,
|
||||||
Z & moartr, Z & mxartr, Z & n1artr, Z * mnartr, Z * mnarst,
|
Z & moartr, Z & mxartr, Z & n1artr, Z * mnartr, Z * mnarst,
|
||||||
Z & nbtria, Z * mntrsu, Z & ierr );}
|
Z & nbtria, Z * mntrsu, Z & ierr );}
|
||||||
// suppression des triangles externes a la surface
|
// suppression des triangles externes a la surface
|
||||||
|
|
||||||
extern "C" {void teamqt_( Z & nutysu,
|
extern "C" {void
|
||||||
|
#ifdef WIN32
|
||||||
|
__stdcall
|
||||||
|
#endif
|
||||||
|
#ifdef DFORTRAN
|
||||||
|
TEAMQT
|
||||||
|
#else
|
||||||
|
teamqt_
|
||||||
|
#endif
|
||||||
|
( Z & nutysu,
|
||||||
Z * mnarst, Z & mosoar, Z & mxsoar, Z & n1soar, Z * mnsoar,
|
Z * mnarst, Z & mosoar, Z & mxsoar, Z & n1soar, Z * mnsoar,
|
||||||
Z & moartr, Z & mxartr, Z & n1artr, Z * mnartr,
|
Z & moartr, Z & mxartr, Z & n1artr, Z * mnartr,
|
||||||
Z & mxarcf, Z * mntrcf, Z * mnstbo,
|
Z & mxarcf, Z * mntrcf, Z * mnstbo,
|
||||||
@ -259,14 +373,40 @@ extern "C" {void teamqt_( Z & nutysu,
|
|||||||
// modification de la topologie des groupes de triangles
|
// modification de la topologie des groupes de triangles
|
||||||
// mise en delaunay de la triangulation
|
// mise en delaunay de la triangulation
|
||||||
|
|
||||||
extern "C" {void nusotr_( Z & nt, Z & mosoar, Z * mnsoar, Z & moartr, Z * mnartr,
|
extern "C" {void
|
||||||
Z * nosotr );}
|
#ifdef WIN32
|
||||||
|
__stdcall
|
||||||
|
#endif
|
||||||
|
#ifdef DFORTRAN
|
||||||
|
NUSOTR
|
||||||
|
#else
|
||||||
|
nusotr_
|
||||||
|
#endif
|
||||||
|
( Z & nt, Z & mosoar, Z * mnsoar, Z & moartr, Z * mnartr,Z * nosotr );}
|
||||||
//retrouver les numero des 3 sommets du triangle nt
|
//retrouver les numero des 3 sommets du triangle nt
|
||||||
|
|
||||||
extern "C" {void qutr2d_( R3 & p1, R3 & p2, R3 & p3, R & qualite );}
|
extern "C" {void
|
||||||
|
#ifdef WIN32
|
||||||
|
__stdcall
|
||||||
|
#endif
|
||||||
|
#ifdef DFORTRAN
|
||||||
|
QUTR2D
|
||||||
|
#else
|
||||||
|
qutr2d_
|
||||||
|
#endif
|
||||||
|
( R3 & p1, R3 & p2, R3 & p3, R & qualite );}
|
||||||
//calculer la qualite d'un triangle de R2 de sommets p1, p2, p3
|
//calculer la qualite d'un triangle de R2 de sommets p1, p2, p3
|
||||||
|
|
||||||
extern "C" { R surtd2_( R3 & p1, R3 & p2, R3 & p3 ); }
|
extern "C" { R
|
||||||
|
#ifdef WIN32
|
||||||
|
__stdcall
|
||||||
|
#endif
|
||||||
|
#ifdef DFORTRAN
|
||||||
|
SURTD2
|
||||||
|
#else
|
||||||
|
surtd2_
|
||||||
|
#endif
|
||||||
|
( R3 & p1, R3 & p2, R3 & p3 ); }
|
||||||
//calcul de la surface d'un triangle defini par 3 points de r**2
|
//calcul de la surface d'un triangle defini par 3 points de r**2
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -22,11 +22,13 @@
|
|||||||
#ifndef _SMDS_Iterator_HeaderFile
|
#ifndef _SMDS_Iterator_HeaderFile
|
||||||
#define _SMDS_Iterator_HeaderFile
|
#define _SMDS_Iterator_HeaderFile
|
||||||
|
|
||||||
|
#include "SMESH_SMDS.hxx"
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
///Abstract class for iterators
|
///Abstract class for iterators
|
||||||
///@author Jerome Robert
|
///@author Jerome Robert
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
template<typename VALUE> class SMDS_Iterator
|
template<typename VALUE> class SMDS_EXPORT SMDS_Iterator
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
/// Return true if and only if there are other object in this iterator
|
/// Return true if and only if there are other object in this iterator
|
||||||
|
@ -63,8 +63,8 @@ class SMDS_EXPORT SMDS_MeshElement:public SMDS_MeshObject
|
|||||||
virtual SMDSAbs_ElementType GetType() const = 0;
|
virtual SMDSAbs_ElementType GetType() const = 0;
|
||||||
virtual bool IsPoly() const { return false; };
|
virtual bool IsPoly() const { return false; };
|
||||||
|
|
||||||
friend std::ostream & operator <<(std::ostream & OS, const SMDS_MeshElement *);
|
friend SMDS_EXPORT std::ostream & operator <<(std::ostream & OS, const SMDS_MeshElement *);
|
||||||
friend bool SMDS_MeshElementIDFactory::BindID(int ID,SMDS_MeshElement*elem);
|
friend SMDS_EXPORT bool SMDS_MeshElementIDFactory::BindID(int ID,SMDS_MeshElement*elem);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
SMDS_MeshElement(int ID=-1);
|
SMDS_MeshElement(int ID=-1);
|
||||||
|
@ -28,17 +28,12 @@
|
|||||||
|
|
||||||
#include "SMESH_SMESH.hxx"
|
#include "SMESH_SMESH.hxx"
|
||||||
|
|
||||||
|
#include "SMESHDS_DataMapOfShape.hxx"
|
||||||
|
|
||||||
#include <NCollection_DefineIndexedMap.hxx>
|
#include <NCollection_DefineIndexedMap.hxx>
|
||||||
|
|
||||||
#include <TopoDS_Shape.hxx>
|
#include <TopoDS_Shape.hxx>
|
||||||
|
|
||||||
SMESH_EXPORT
|
|
||||||
inline Standard_Boolean IsEqual(const TopoDS_Shape& S1,
|
|
||||||
const TopoDS_Shape& S2)
|
|
||||||
{
|
|
||||||
return S1.IsSame(S2);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Class SMESH_IndexedMapOfShape
|
/// Class SMESH_IndexedMapOfShape
|
||||||
|
|
||||||
DEFINE_BASECOLLECTION (SMESH_BaseCollectionShape, TopoDS_Shape)
|
DEFINE_BASECOLLECTION (SMESH_BaseCollectionShape, TopoDS_Shape)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user