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, 6 months ago) by couturad
File size: 2203 byte(s)
Log Message:
Nouveau opencascade commit 1

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 couturad 906 int MG_COURBE::get_type(void)
54     {
55     return TYPE_ELEMENT_GEOMETRIQUE::COURBE;
56     }
57    
58    
59 francois 283 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