arete
C ARETE SOURCE PV 21/12/19 21:15:02 11245 SUBROUTINE ARETE * * OPERATEUR TRANSFORMANT UN MAILLAGE 3D DE TYPE COMPLEXE * EN UN MAILLAGE 3D COMPOSE UNIQUEMENT DE SEG2 REPRESENTANT * LES ARETES VIVES DU VOLUME. * *------------------------------------------------------------------- * * ARBRE D'APPEL : * -------------- * ENVVEL : ELIMINATION PARTIE MASSIVE DU MAILLAGE * * ARETE1 : CALCUL DE PREPARATION * (CALCUL DE NORMALE,TRANSFORMATION EN SEG2) * * ARETE3 : ELIMINATION SEGMENTS INUTILES PAR ESTIMATION * DE LA DIFFERENCE DES NORMALES DE 2 FACETTES ADJACENTE * *------------------------------------------------------------------- * * VARIABLES PRINCIPALES : * --------------------- * * TSEG : SEGMENT 2 DIMENSIONS CONTENANT * | A TRACER (= 0 NON, =1 OUI) | * | COULEUR | * | N NOEUD MIN | * | N NOEUD MAX | * | ENTREES DANS TSEG | * * TNOR : SEGMENT 2 DIMENSIONS CONTENANT LES NORMALES A COMPARER * POUR CHAQUE FACE ELEMENTAIRE * * TINDIC : SEGMENT DONNANT LA POSITION DANS TNOR EN FONCTION * DES 2 NOEUDS * * ISEG : TAILLE REELLE DU SEGMENT TSEG * INOR : TAILLE REELLE DU SEGMENT TNOR * *-------------------------------------------------------------------- * AUTEUR : J.BRUN (JUIN 90) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Y) IMPLICIT LOGICAL (Z) -INC CCREEL -INC SMELEME -INC PPARAM -INC CCOPTIO -INC SMCOORD SEGMENT TN REAL*8 TNOR(N1,3) ENDSEGMENT * SEGMENT TS INTEGER TSEG(M1,M2) ENDSEGMENT * SEGMENT TI INTEGER TINDIC(MI1,MI2,2) ENDSEGMENT * SEGMENT ICPR(nbpts) * segact mcoord C Operateur disponible en dimension 3 IF (IDIM.NE.3) THEN INTERR(1)=IDIM RETURN ENDIF CANGLE=COS(XPI/9.D0) IF (IERR.NE.0) RETURN * UN ANGLE ALPHA > 90 <==> XPI-ALPHA IF (IOK.NE.0) CANGLE=ABS(COS(ANGLE*XPI/180.D0)) *-------------------------------------------------------------------- * * ELIMINATION PARTIE MASSIVE * CALL ENVVOL if (ierr.ne.0) return *-------------------------------------------------------------------- * * CREATION STRUCTURE ESOPE * N1=200 SEGINI TN INOR=0 M1=200 M2=10 SEGINI TS ISEG=0 MI1=200 MI2=3 SEGINI TI SEGINI ICPR LCPR=0 *------------------------------------------------------------------ * PREPARATION MAILLAGE * if (ierr.ne.0) return *------------------------------------------------------------------ * ELIMINATION SEG2 INUTILE * if (ierr.ne.0) return NBNN=2 NBELEM=NBSEG NBSOUS=0 NBREF=0 SEGINI MELEME ITYPEL=2 J=1 DO 100 I=1,ISEG IF (TSEG(I,1).EQ.1) THEN ICOLOR(J)=TSEG(I,2) NUM(1,J)=TSEG(I,3) NUM(2,J)=TSEG(I,4) J=J+1 ENDIF 100 CONTINUE SEGDES MELEME SEGSUP TN,TS,TI,ICPR RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales