MAGiC  V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
rec_arete_elliptique.cpp
Aller à la documentation de ce fichier.
1 //####//------------------------------------------------------------
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 //####// rec_arete_elliptique.cpp
15 //####//
16 //####//------------------------------------------------------------
17 //####//------------------------------------------------------------
18 //####// COPYRIGHT 2000-2024
19 //####// jeu 13 jun 2024 11:58:56 EDT
20 //####//------------------------------------------------------------
21 //####//------------------------------------------------------------
22 #include "gestionversion.h"
23 
24 #pragma hdrstop
25 
26 #include "occ_fonction.h"
27 #include "rec_arete_elliptique.h"
28 #include "fem_noeud.h"
29 #include "fem_maillage.h"
30 
31 
32 #pragma package(smart_init)
33 
34 
35 
36 
37 
38 REC_ARETE_ELLIPTIQUE::REC_ARETE_ELLIPTIQUE(FEM_MAILLAGE* fem_mai, int Idealise, OCC_FONCTION_RECONSTRUCTION& fonc, int test, int* faces): REC_ARETE(fem_mai, Idealise, fonc, test, faces)
39 {
40 }
41 
43 {
44 }
45 
47 {
48 
49 double P1[3];
50 double P2[3];
51 
52 
53 MG_ARETE* Arete = coArete->get_arete();
54 
55 MG_COSOMMET* cosommet1 = Arete->get_cosommet1();
56 MG_SOMMET* sommet1 = cosommet1->get_sommet();
57 int nb_noeud1 = sommet1->get_lien_fem_maillage()->get_nb();
58 FEM_NOEUD* noeud1;
59 for (int i =0; i<nb_noeud1;i++)
60  {
61  FEM_NOEUD* noeud =(FEM_NOEUD*)sommet1->get_lien_fem_maillage()->get(i);
62  if (!fem_maillage->contient(noeud)) continue;
63  noeud1 = noeud;
64  }
65 
66 P1[0]=noeud1->get_x(coef);
67 P1[1]=noeud1->get_y(coef);
68 P1[2]=noeud1->get_z(coef);
69 
70 MG_COSOMMET* cosommet2 = Arete->get_cosommet2();
71 MG_SOMMET* sommet2 = cosommet2->get_sommet();
72 int nb_noeud2 = sommet2->get_lien_fem_maillage()->get_nb();
73 FEM_NOEUD* noeud2;
74 for (int i =0; i<nb_noeud2;i++)
75  {
76  FEM_NOEUD* noeud =(FEM_NOEUD*)sommet1->get_lien_fem_maillage()->get(i);
77  if (!fem_maillage->contient(noeud)) continue;
78  noeud2 = noeud;
79  }
80 
81 P2[0]=noeud2->get_x(coef);
82 P2[1]=noeud2->get_y(coef);
83 P2[2]=noeud2->get_z(coef);
84 
85 TPL_LISTE_ENTITE <double> Parametres;
86 MG_COURBE* courbe = Arete->get_courbe();
87 int type_courbe = courbe->get_type_geometrique(Parametres);
88 
89 double Pnt_Insersion[3];
90 Pnt_Insersion[0]= Parametres.get(0);
91 Pnt_Insersion[1]= Parametres.get(1);
92 Pnt_Insersion[2]= Parametres.get(2);
93 
94 double GRayon = Parametres.get(9);
95 double PRayon = Parametres.get(10);
96 
97 fonction.Creer_Arete_Elliptique(Pnt_Insersion, P1, P2, GRayon, PRayon);
98 }
99 
100 
101 
103 {
104 
105 }
106 
107 
108 
109 
110 
111 
112 
113 
114 
MG_ARETE::get_cosommet2
virtual class MG_COSOMMET * get_cosommet2(void)
Definition: mg_arete.cpp:85
REC_BREP::fonction
OCC_FONCTION_RECONSTRUCTION & fonction
Definition: rec_brep.h:56
OCC_FONCTION_RECONSTRUCTION::Creer_Arete_Elliptique
int Creer_Arete_Elliptique(double Pnt_Insersion[], double P1[], double P2[], double GRayon, double PRayon)
Definition: occ_fonction_reconstruction.cpp:351
REC_ARETE_ELLIPTIQUE::~REC_ARETE_ELLIPTIQUE
virtual ~REC_ARETE_ELLIPTIQUE()
Definition: rec_arete_elliptique.cpp:42
OCC_FONCTION_RECONSTRUCTION
Definition: occ_fonction_reconstruction.h:84
gestionversion.h
REC_BREP::fem_maillage
FEM_MAILLAGE * fem_maillage
Definition: rec_brep.h:52
fem_maillage.h
MG_COSOMMET
Definition: mg_cosommet.h:31
MG_COARETE
Definition: mg_coarete.h:31
fem_noeud.h
MG_COURBE
Definition: mg_courbe.h:30
FEM_NOEUD::get_y
virtual double get_y(double coef=0.)
Definition: fem_noeud.cpp:210
FEM_MAILLAGE
Definition: fem_maillage.h:66
REC_ARETE_ELLIPTIQUE::REC_ARETE_ELLIPTIQUE
REC_ARETE_ELLIPTIQUE(FEM_MAILLAGE *fem_mai, int Idealise, OCC_FONCTION_RECONSTRUCTION &fonc, int test, int *faces)
Definition: rec_arete_elliptique.cpp:38
TPL_LISTE_ENTITE::get_nb
virtual int get_nb(void)
Definition: tpl_liste_entite.h:67
MG_COSOMMET::get_sommet
virtual MG_SOMMET * get_sommet(void)
Definition: mg_cosommet.cpp:83
TPL_LISTE_ENTITE::get
virtual X get(int num)
Definition: tpl_liste_entite.h:72
FEM_NOEUD::get_x
virtual double get_x(double coef=0.)
Definition: fem_noeud.cpp:205
FEM_NOEUD
Definition: fem_noeud.h:35
rec_arete_elliptique.h
MG_COURBE::get_type_geometrique
virtual int get_type_geometrique(TPL_LISTE_ENTITE< double > &param)=0
FEM_NOEUD::get_z
virtual double get_z(double coef=0.)
Definition: fem_noeud.cpp:215
MG_ARETE::get_courbe
virtual class MG_COURBE * get_courbe(void)
Definition: mg_arete.cpp:89
REC_ARETE_ELLIPTIQUE::Enregistrer
void Enregistrer(char *fich)
Definition: rec_arete_elliptique.cpp:102
FEM_MAILLAGE::contient
bool contient(MG_IDENTIFICATEUR *id)
Definition: fem_maillage.cpp:110
MG_ELEMENT_TOPOLOGIQUE::get_lien_fem_maillage
virtual TPL_LISTE_ENTITE< FEM_ELEMENT_MAILLAGE * > * get_lien_fem_maillage(void)
Definition: mg_element_topologique.cpp:67
TPL_LISTE_ENTITE< double >
MG_ARETE
Definition: mg_arete.h:36
occ_fonction.h
REC_ARETE
Definition: rec_arete.h:33
MG_ARETE::get_cosommet1
virtual class MG_COSOMMET * get_cosommet1(void)
Definition: mg_arete.cpp:81
MG_SOMMET
Definition: mg_sommet.h:35
REC_ARETE_ELLIPTIQUE::Reconstruire
void Reconstruire(MG_COARETE *coArete, double coef)
Definition: rec_arete_elliptique.cpp:46
MG_COARETE::get_arete
virtual MG_ARETE * get_arete(void)
Definition: mg_coarete.cpp:58