Code_TYMPAN  4.4.0
Industrial site acoustic simulation
TYPointParcours.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) <2012> <EDF-R&D> <FRANCE>
3  * This program is free software; you can redistribute it and/or modify
4  * it under the terms of the GNU General Public License as published by
5  * the Free Software Foundation; either version 2 of the License, or
6  * (at your option) any later version.
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
10  * See the GNU General Public License for more details.
11  * You should have received a copy of the GNU General Public License along
12  * with this program; if not, write to the Free Software Foundation, Inc.,
13  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
14  */
15 
16 /*
17  *
18  *
19  *
20  *
21  */
22 
23 #ifndef TYPOINT_PARCOURS_H
24 #define TYPOINT_PARCOURS_H
25 
26 #define SEUIL_DISTANCE_POINTS_CONFONDUS \
27  0.02
28 #define SEUIL_DETERMNANT_COLINEAIRE \
29  (1E-10)
31 
37 {
38  double x;
39  double y;
40  double z;
42  bool isInfra;
43  bool isEcran;
44  static const double _dSeuilDistanceCarre;
46 
47  bool operator==(TYPointParcours& p);
48 
49  double normeCarree();
50 
51  static bool Confondus(TYPointParcours* P1,
52  TYPointParcours* P2);
54  static double ZCross(TYPointParcours SR,
55  TYPointParcours SP);
57  TYPointParcours& P4,
58  TYPointParcours& P);
60 
77  bool bP3OrP4MustNotCoincideWithP = false);
87  static double Scalaire(TYPointParcours& P1, TYPointParcours& P2, TYPointParcours& P3,
88  TYPointParcours& P4);
89 
97  static double Scalaire(TYPointParcours& vecteur1, TYPointParcours& vecteur2);
98 
107 
117 };
118 
119 #endif // TYPOINT_PARCOURS_H
Point of a path.
double z
z coordinate of the point
bool isInfra
Flag set to indicate if the point is an infrastructure.
int Identifiant
Point id.
static bool Confondus(TYPointParcours *P1, TYPointParcours *P2)
static bool IntersectionSegments(TYPointParcours &P1, TYPointParcours &P2, TYPointParcours &P3, TYPointParcours &P4, TYPointParcours &P, bool bP3OrP4MustNotCoincideWithP=false)
Return true if [P1P2] intersects [P3P4] if P1 or P2 coincide with the intersection point P,...
static double ZCross(TYPointParcours SR, TYPointParcours SP)
Return cross product applied to SR and SP points.
double y
y coordinate of the point
bool operator==(TYPointParcours &p)
Return true if this point and p are on same location.
static double Scalaire(TYPointParcours &P1, TYPointParcours &P2, TYPointParcours &P3, TYPointParcours &P4)
Compute the scalar product of the vector P1P2 and P3P4.
double x
x coordinate of the point
double normeCarree()
Return x^2+y^2.
static const double _dSeuilDistanceCarre
bool isEcran
Flag set to indicate if the point is a screen.
static bool IntersectionDroites(TYPointParcours &P1, TYPointParcours &P2, TYPointParcours &P3, TYPointParcours &P4, TYPointParcours &P)
static double AbscisseCurviligneCarreSurSR(TYPointParcours &P, TYPointParcours &S, TYPointParcours &R)
Return the square of the curvilinear abscissa of point P on [SR].
static TYPointParcours vecteur2D(TYPointParcours &P1, TYPointParcours &P2)
Compute the 2 dimensional vector P1P2 in the XY plane.