ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/geometrie/src/mg_courbe.cpp
Revision: 906
Committed: Mon Nov 13 22:30:18 2017 UTC (7 years, 9 months ago) by couturad
File size: 2203 byte(s)
Log Message:
Nouveau opencascade commit 1

File Contents

# Content
1 //------------------------------------------------------------
2 //------------------------------------------------------------
3 // MAGiC
4 // Jean Christophe Cuilli�re et Vincent FRANCOIS
5 // D�partement de G�nie M�canique - UQTR
6 //------------------------------------------------------------
7 // Le projet MAGIC est un projet de recherche du d�partement
8 // de g�nie m�canique de l'Universit� du Qu�bec �
9 // Trois Rivi�res
10 // Les librairies ne peuvent �tre utilis�es sans l'accord
11 // des auteurs (contact : francois@uqtr.ca)
12 //------------------------------------------------------------
13 //------------------------------------------------------------
14 //
15 // mg_courbe.cpp
16 //
17 //------------------------------------------------------------
18 //------------------------------------------------------------
19 // COPYRIGHT 2000
20 // Version du 02/03/2006 � 11H22
21 //------------------------------------------------------------
22 //------------------------------------------------------------
23
24
25 #include "gestionversion.h"
26 #include <math.h>
27 #include "mg_courbe.h"
28 #include "vct_courbe.h"
29
30
31
32 MG_COURBE::MG_COURBE(unsigned long num):MG_ELEMENT_GEOMETRIQUE(num),vect(NULL)
33 {
34 }
35
36
37 MG_COURBE::MG_COURBE():MG_ELEMENT_GEOMETRIQUE(),vect(NULL)
38 {
39 }
40
41
42
43 MG_COURBE::MG_COURBE(MG_COURBE& mdd):MG_ELEMENT_GEOMETRIQUE(),vect(NULL)
44 {
45 }
46
47
48 MG_COURBE::~MG_COURBE()
49 {
50 if (vect!=NULL) delete vect;
51 }
52
53 int MG_COURBE::get_type(void)
54 {
55 return TYPE_ELEMENT_GEOMETRIQUE::COURBE;
56 }
57
58
59 double MG_COURBE::get_tmin()
60 {
61 return t_min;
62 }
63 double MG_COURBE::get_tmax()
64 {
65 return t_max;
66 }
67
68 double MG_COURBE::get_M(double t)
69 {
70 double ddxyz[3];
71 double dxyz[3];
72 double xyz[3];
73
74 deriver_seconde(t,ddxyz,dxyz,xyz);
75 double facteur1=(dxyz[0]*dxyz[0]+dxyz[1]*dxyz[1]+dxyz[2]*dxyz[2]);
76 double facteur2=(ddxyz[0]*dxyz[0]+ddxyz[1]*dxyz[1]+ddxyz[2]*dxyz[2])/facteur1/facteur1;
77 double m[3];
78 m[0]=ddxyz[0]/facteur1-dxyz[0]*facteur2;
79 m[1]=ddxyz[1]/facteur1-dxyz[1]*facteur2;
80 m[2]=ddxyz[2]/facteur1-dxyz[2]*facteur2;
81 return sqrt(m[0]*m[0]+m[1]*m[1]+m[2]*m[2]);
82
83 }
84
85 VCT& MG_COURBE::get_vectorisation(void)
86 {
87 if (vect==NULL) vect=new VCT_COURBE(this);
88 return *vect;
89
90 }
91