ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/mtu/src/CAD4FE_MCEdge.cpp
Revision: 1158
Committed: Thu Jun 13 22:18:49 2024 UTC (11 months, 1 week ago) by francois
File size: 3971 byte(s)
Log Message:
compatibilité Ubuntu 22.04
Suppression des refeences à Windows
Ajout d'une banière

File Contents

# User Rev Content
1 francois 1158 //####//------------------------------------------------------------
2     //####//------------------------------------------------------------
3     //####// MAGiC
4     //####// Jean Christophe Cuilliere et Vincent FRANCOIS
5     //####// Departement de Genie Mecanique - UQTR
6     //####//------------------------------------------------------------
7     //####// MAGIC est un projet de recherche de l equipe ERICCA
8     //####// du departement de genie mecanique de l Universite du Quebec a Trois Rivieres
9     //####// http://www.uqtr.ca/ericca
10     //####// http://www.uqtr.ca/
11     //####//------------------------------------------------------------
12     //####//------------------------------------------------------------
13     //####//
14     //####// CAD4FE_MCEdge.cpp
15     //####//
16     //####//------------------------------------------------------------
17     //####//------------------------------------------------------------
18     //####// COPYRIGHT 2000-2024
19     //####// jeu 13 jun 2024 11:58:53 EDT
20     //####//------------------------------------------------------------
21     //####//------------------------------------------------------------
22 foucault 27 #pragma hdrstop
23 francois 283
24 foucault 27 #include "gestionversion.h"
25    
26 foucault 569 #include "CAD4FE_MCEdge.h"
27 foucault 27 #include "math.h"
28 foucault 569 #include "CAD4FE_MCVertex.h"
29     #include "CAD4FE_MCFace.h"
30     #include "CAD4FE_PolyCurve.h"
31 foucault 27 #include "ot_algorithme_geometrique.h"
32    
33 francois 283 #include <sstream>
34 foucault 27 #include <string>
35    
36     #ifdef __BORLANDC__
37     #pragma warn -8012
38     #pragma warn -8037
39     #endif
40    
41     using namespace CAD4FE;
42    
43     MCEdge::MCEdge(MG_ARETE * __refEdge)
44 foucault 569 : MG_ARETE(std::string("MC")+std::string(__refEdge->get_idoriginal()), new PolyCurve(__refEdge), 1)
45 foucault 27 {
46 foucault 569 time = 0;
47 francois 830 transfert_ccf(*__refEdge);
48 foucault 27 }
49    
50     MCEdge::MCEdge(std::string __idOriginal, PolyCurve * __polycurve)
51 foucault 569 : MG_ARETE(__idOriginal, (PolyCurve*)__polycurve, 1)
52     {
53     time = 0;
54 foucault 27 }
55    
56     MCEdge::~MCEdge()
57     {
58     }
59    
60     MCEdge::MCEdge(std::string __idoriginal, MCEdge & __A, MCEdge & __B)
61 foucault 569 : MG_ARETE(__idoriginal, new PolyCurve(), 1)
62     {
63     time = 0;
64 foucault 27
65 foucault 569 GetPolyCurve()->Merge (*__A.GetPolyCurve());
66     GetPolyCurve()->Merge (*__B.GetPolyCurve());
67 francois 830 transfert_ccf(__A);
68     transfert_ccf(__B);
69 foucault 27
70 foucault 569 _CopyMeshLink(__A);
71     _CopyMeshLink(__B);
72     }
73 foucault 27
74     void MCEdge::_CopyMeshLink( MCEdge & __mcEdge)
75     {
76     int i;
77 foucault 569 TPL_SET<MG_ELEMENT_MAILLAGE*> * lien_maillage = __mcEdge.get_lien_maillage();
78     TPL_SET<MG_ELEMENT_MAILLAGE*>::ITERATEUR it;
79 foucault 27
80 foucault 569 for (MG_ELEMENT_MAILLAGE* element = lien_maillage->get_premier(it);element;element = lien_maillage->get_suivant(it))
81     {
82     element->change_lien_topologie2(this);
83     get_lien_maillage()->ajouter(element);
84 francois 283
85 foucault 569 MG_SEGMENT * seg = (MG_SEGMENT *) element;
86     MG_NOEUD * nos[2];
87     nos[0] = seg->get_noeud1();
88     nos[1] = seg->get_noeud2();
89     for (i=0; i<2; i++)
90     {
91     if (!nos[i]->get_lien_topologie() || nos[i]->get_lien_topologie()->get_dimension() >= 1)
92     nos[i]->change_lien_topologie2(this);
93     }
94 foucault 27 }
95     }
96    
97     PolyCurve *
98     MCEdge::GetPolyCurve ( )
99     {
100 foucault 569 return (PolyCurve *) get_courbe();
101 foucault 27 }
102    
103 foucault 569 int
104     MCEdge::IsInterior()
105     {
106     if (get_nb_mg_coarete() != 2)
107     return 0;
108    
109     if (get_mg_coarete(0)->get_boucle() == get_mg_coarete(1)->get_boucle())
110     return 1;
111     else
112     return 0;
113     }
114    
115 francois 763 void MCEdge::enregistrer(std::ostream& o,double version)
116 foucault 27 {
117 foucault 569 int nb=get_nb_ccf();
118     o << "%" << get_id() << "=CAD4FE_MCEDGE("<< get_idoriginal() << ",$" << get_courbe()->get_id() << ",$"<<get_cosommet1()->get_id() << ",$" <<get_cosommet2()->get_id() << "," << get_orientation() << "," << nb;
119     if (nb!=0)
120     {
121 foucault 27 o << ",(";
122     for (int i=0;i<nb;i++)
123 foucault 569 {
124     char nom[3];
125     get_type_ccf(i,nom);
126     o << "(" << nom << "," << get_valeur_ccf(i) << ")";
127     if (i!=nb-1) o << "," ;
128     }
129     o << ")";
130 francois 283 }
131 foucault 569 o << ");" << std::endl;
132 foucault 27 }
133