ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/geometrie/src/mg_courbe.cpp
Revision: 283
Committed: Tue Sep 13 21:11:20 2011 UTC (13 years, 8 months ago) by francois
File size: 2124 byte(s)
Log Message:
structure de l'écriture

File Contents

# User Rev Content
1 francois 283 //------------------------------------------------------------
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     double MG_COURBE::get_tmin()
54     {
55     return t_min;
56     }
57     double MG_COURBE::get_tmax()
58     {
59     return t_max;
60     }
61    
62     double MG_COURBE::get_M(double t)
63     {
64     double ddxyz[3];
65     double dxyz[3];
66     double xyz[3];
67    
68     deriver_seconde(t,ddxyz,dxyz,xyz);
69     double facteur1=(dxyz[0]*dxyz[0]+dxyz[1]*dxyz[1]+dxyz[2]*dxyz[2]);
70     double facteur2=(ddxyz[0]*dxyz[0]+ddxyz[1]*dxyz[1]+ddxyz[2]*dxyz[2])/facteur1/facteur1;
71     double m[3];
72     m[0]=ddxyz[0]/facteur1-dxyz[0]*facteur2;
73     m[1]=ddxyz[1]/facteur1-dxyz[1]*facteur2;
74     m[2]=ddxyz[2]/facteur1-dxyz[2]*facteur2;
75     return sqrt(m[0]*m[0]+m[1]*m[1]+m[2]*m[2]);
76    
77     }
78    
79     VCT& MG_COURBE::get_vectorisation(void)
80     {
81     if (vect==NULL) vect=new VCT_COURBE(this);
82     return *vect;
83    
84     }
85