MAGiC
V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
ct_point.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
//####// ct_point.cpp
15
//####//
16
//####//------------------------------------------------------------
17
//####//------------------------------------------------------------
18
//####// COPYRIGHT 2000-2024
19
//####// jeu 13 jun 2024 11:58:53 EDT
20
//####//------------------------------------------------------------
21
//####//------------------------------------------------------------
22
23
24
#include "
gestionversion.h
"
25
26
#pragma hdrstop
27
28
#include "
ct_point.h
"
29
#include "
ot_boite_3d.h
"
30
31
template
<
int
N>
unsigned
long
CT_POINT<N>::idmax
=0;
//definir ds CT_POINT la var idmax
32
33
template
<
int
N>
CT_POINT<N>::CT_POINT
(
double
x,
double
y,
double
z,
DOUBLEN<N>
en,
BOITE_3D
boitetmp,
double
courbure):boite(boitetmp)
34
{
35
point
[0]=x;
36
point
[1]=y;
37
point
[2]=z;
38
ecart
=en;
39
id
=
idmax
;
40
idmax
++;
41
c
=courbure;
42
}
43
44
45
template
<
int
N>
CT_POINT<N>::~CT_POINT
()
46
{
47
}
48
49
template
<
int
N>
void
CT_POINT<N>::evaluer
(
double
*xyz)
50
{
51
xyz[0]=point[0];
52
xyz[1]=point[1];
53
xyz[2]=point[2];
54
}
55
56
template
<
int
N>
unsigned
long
CT_POINT<N>::get_id
()
57
{
58
return
id
;
59
}
60
61
template
<
int
N>
DOUBLEN<N>
&
CT_POINT<N>::get_valeur
(
void
)
62
{
63
return
ecart;
64
}
65
66
template
<
int
N>
double
CT_POINT<N>::get_fonction_influence
(
double
r)
67
{
68
69
if
(!c)
return
(1-r);
70
double
f
,b=0.1;
// la fonction est soit une droite (c=0) ou une courbe de courbure positive(f>0) ou n�gative (f<0) nulle en r=1
71
if
(c>0)
// cette fonction d�termine le poids d'un point d'�chantillonnage en fonction de sa distance
72
{
// les deux fonctions c>0 et c<0 engendrent des �volutions oppos�es l'une � l'autre, et tendent toutes les deux vers 1-r quand c tend vers 0.
73
f
=(c+b)*b/(c*(c*r+b))-b/c;
74
return
f
;
75
}
76
if
(c<0)
77
{
78
f
=(b-c)*b/((-c)*((-c)*(1-r)+b))-b/(-c);
79
return
r*(1-r)/
f
;
80
}
81
82
83
return
0;
84
}
85
86
template
<
int
N>
double
CT_POINT<N>::get_fonction_influence
(
double
r,
double
crbr)
87
{
88
89
if
(!crbr)
return
(1-r);
90
double
f
,b=0.1;
// la fonction est soit une droite (c=0) ou une courbe de courbure positive(f>0) ou n�gative (f<0) nulle en r=1
91
if
(crbr>0)
// cette fonction d�termine le poids d'un point d'�chantillonnage en fonction de sa distance
92
{
// les deux fonctions c>0 et c<0 engendrent des �volutions oppos�es l'une � l'autre, et tendent toutes les deux vers 1-r quand c tend vers 0.
93
f
=(crbr+b)*b/(crbr*(crbr*r+b))-b/crbr;
94
return
f
;
95
}
96
if
(crbr<0)
97
{
98
f
=(b-crbr)*b/((-crbr)*((-crbr)*(1-r)+b))-b/(-crbr);
99
return
r*(1-r)/
f
;
100
}
101
102
103
return
0;
104
}
105
106
107
108
template
<
int
N>
BOITE_3D
CT_POINT<N>::get_boite_3D
(
void
)
109
{
110
return
boite;
111
}
112
113
114
115
#ifdef BORLANDCPP
116
template
class
__export
CT_POINT<1>
;
117
template
class
__export
CT_POINT<4>
;
118
#else
119
template
class
CT_POINT<1>
;
120
template
class
CT_POINT<4>
;
121
#endif
122
123
gestionversion.h
CT_POINT::point
double point[3]
Definition:
ct_point.h:44
CT_POINT::evaluer
virtual void evaluer(double *xyz)
Definition:
ct_point.cpp:49
CT_POINT
Definition:
ct_point.h:31
CT_POINT::get_valeur
DOUBLEN< N > & get_valeur(void)
Definition:
ct_point.cpp:61
CT_POINT::ecart
DOUBLEN< N > ecart
Definition:
ct_point.h:45
CT_POINT::get_boite_3D
virtual class BOITE_3D get_boite_3D(void)
Definition:
ct_point.cpp:108
f
double f(double x, long nb, double *xfonc, double *fonc, double eng, double eni, double lambda, double nor, double *fonc2)
Definition:
fct_generateur_calibrage.cpp:96
CT_POINT::c
double c
Definition:
ct_point.h:49
CT_POINT::~CT_POINT
virtual ~CT_POINT()
Definition:
ct_point.cpp:45
CT_POINT::idmax
static unsigned long idmax
Definition:
ct_point.h:47
MG_IDENTIFICATEUR::id
unsigned long id
Definition:
mg_identificateur.h:49
BOITE_3D
Definition:
ot_boite_3d.h:27
ot_boite_3d.h
ct_point.h
DOUBLEN
Definition:
ot_mathematique.h:457
CT_POINT::get_id
virtual unsigned long get_id()
Definition:
ct_point.cpp:56
CT_POINT::CT_POINT
CT_POINT(double x, double y, double z, DOUBLEN< N > en, BOITE_3D boitetmp, double courbure=0)
Definition:
ct_point.cpp:33
CT_POINT::get_fonction_influence
double get_fonction_influence(double r)
Definition:
ct_point.cpp:66
home
francois
tmp
lib
carte
src
ct_point.cpp
Généré le Jeudi 12 Juin 2025 23:00:07 pour MAGiC par
1.8.17