MAGiC  V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
mg_courbe.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 //####// mg_courbe.cpp
15 //####//
16 //####//------------------------------------------------------------
17 //####//------------------------------------------------------------
18 //####// COPYRIGHT 2000-2024
19 //####// jeu 13 jun 2024 11:58:54 EDT
20 //####//------------------------------------------------------------
21 //####//------------------------------------------------------------
22 
23 
24 #include "gestionversion.h"
25 #include <math.h>
26 #include "mg_courbe.h"
27 #include "vct_courbe.h"
28 
29 
30 
31 MG_COURBE::MG_COURBE(unsigned long num):MG_ELEMENT_GEOMETRIQUE(num),vect(NULL)
32 {
33 }
34 
35 
37 {
38 }
39 
40 
41 
43 {
44 }
45 
46 
48 {
49  if (vect!=NULL) delete vect;
50 }
51 
53 {
54  return TYPE_ELEMENT_GEOMETRIQUE::COURBE;
55 }
56 
57 
59 {
60  return t_min;
61 }
63 {
64  return t_max;
65 }
66 
67 double MG_COURBE::get_M(double t)
68 {
69  double ddxyz[3];
70  double dxyz[3];
71  double xyz[3];
72 
73  deriver_seconde(t,ddxyz,dxyz,xyz);
74  double facteur1=(dxyz[0]*dxyz[0]+dxyz[1]*dxyz[1]+dxyz[2]*dxyz[2]);
75  double facteur2=(ddxyz[0]*dxyz[0]+ddxyz[1]*dxyz[1]+ddxyz[2]*dxyz[2])/facteur1/facteur1;
76  double m[3];
77  m[0]=ddxyz[0]/facteur1-dxyz[0]*facteur2;
78  m[1]=ddxyz[1]/facteur1-dxyz[1]*facteur2;
79  m[2]=ddxyz[2]/facteur1-dxyz[2]*facteur2;
80  return sqrt(m[0]*m[0]+m[1]*m[1]+m[2]*m[2]);
81 
82 }
83 
85 {
86  if (vect==NULL) vect=new VCT_COURBE(this);
87  return *vect;
88 
89 }
90 
gestionversion.h
MG_COURBE::MG_COURBE
MG_COURBE()
Definition: mg_courbe.cpp:36
MG_COURBE::get_M
virtual double get_M(double t)
Definition: mg_courbe.cpp:67
MG_COURBE::get_type
virtual int get_type(void)
Definition: mg_courbe.cpp:52
vct_courbe.h
MG_COURBE
Definition: mg_courbe.h:30
MG_COURBE::deriver_seconde
virtual void deriver_seconde(double t, double *ddxyz, double *dxyz=NULL, double *xyz=NULL)=0
MG_ARETE::vect
class VCT_ARETE * vect
Definition: mg_arete.h:84
MG_COURBE::t_min
double t_min
Definition: mg_courbe.h:61
mg_courbe.h
MG_COURBE::t_max
double t_max
Definition: mg_courbe.h:62
MG_COURBE::get_tmax
virtual double get_tmax()
Definition: mg_courbe.cpp:62
MG_COURBE::vect
class VCT_COURBE * vect
Definition: mg_courbe.h:63
MG_ELEMENT_GEOMETRIQUE
Definition: mg_element_geometrique.h:30
sqrt
double2 sqrt(double2 &val)
Definition: ot_doubleprecision.cpp:345
MG_COURBE::get_vectorisation
virtual VCT & get_vectorisation(void)
Definition: mg_courbe.cpp:84
VCT_COURBE
Definition: vct_courbe.h:36
MG_COURBE::~MG_COURBE
virtual ~MG_COURBE()
Definition: mg_courbe.cpp:47
VCT
Definition: vct.h:33
MG_COURBE::get_tmin
virtual double get_tmin()
Definition: mg_courbe.cpp:58
m
#define m(i, j)