Code_TYMPAN  4.4.0
Industrial site acoustic simulation
Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Private Member Functions | Static Private Member Functions | List of all members
TYSetGeometriqueParcours Class Reference

Class to build a geometric path used by the TYCalculParcours class. More...

#include <TYSetGeometriqueParcours.h>

Collaboration diagram for TYSetGeometriqueParcours:
Collaboration graph
[legend]

Public Member Functions

 TYSetGeometriqueParcours ()
 Constructor. More...
 
 ~TYSetGeometriqueParcours ()
 Destructor. More...
 
void Copy (TYSetGeometriqueParcours &geoIn)
 Copy operator. More...
 
void AllouerPolylignes (int nNbPolylineAllouee)
 Allocation of the polylines list. More...
 
bool PolylignesInfraFermees ()
 Return true if all polylines from infrastructure are closed. More...
 
int MergePointsDoubles ()
 Detect and fix double points. More...
 
int SupressionPolylignesRedondantes ()
 Suppress useless polylines. More...
 
void SeparationDroiteGauche (bool *PointsAGauche, bool *PointsADroite, TYSetGeometriqueParcours &geoGauche, TYSetGeometriqueParcours &geoDroite, int compteurIter=0)
 Separate left and right polylines with two geometric paths. More...
 
bool polyligneContientSouR (int i)
 Returns true if polyligne of index i contains Source or Receptor. More...
 
void MarquePointsADroiteEtAGauche (TYPointParcours &Srce, TYPointParcours &Dest, bool *&PointsAGauche, bool *&PointsADroite)
 Mark points on the left and on the right of the current geometric path. More...
 
void RamenerPointsTraversantLaFrontiere (TYPointParcours &Srce, TYPointParcours &Dest, int *IndexePointsFrontiere, int &NbPointsFrontiere, std::vector< bool > &pEstUnPointIntersectant, bool bCoteGauche, bool *PointsAGauche, bool *PointsADroite)
 To be commented. More...
 
bool ListerPointsConnexes (Connexite *&Connexes, std::vector< bool > &pEstUnPointIntersectant)
 Fill for each point the connectivity with segments. More...
 
bool PremierePasse (TYPointParcours &Srce, TYPointParcours &Dest, int *IndexePointsFrontiere, int NbPointsFrontiere, std::vector< bool > &pEstUnPointIntersectant, Connexite *Connexes, TYSetGeometriqueParcours &geoPremierePasse, int compteurIter=0)
 First pass to build a path along all the intersecting polylines. More...
 
bool SecondePasse (TYSetGeometriqueParcours &geoPremierePasse, TYSetGeometriqueParcours &geoSecondePasse, bool bTrajetsAGaucheDeSR, TYPointParcours **&pTableauEC, int &nbPtsEC, int compteurIter=0, bool bIsLastSecondePasse=false)
 Second pass. More...
 
void TriePointsIntersectionSuivantSR (TYPointParcours &Srce, TYPointParcours &Dest, int *IndexePointsFrontiere, int NbPointsFrontiere)
 To be commented. More...
 
bool AjoutePointALaPolyLigne (int indexPolyligne, TYPointParcours &P)
 Add a point P to the polyline indexPolyligne. More...
 
int AjouteLesPointsComprisEntre (TYSetGeometriqueParcours &geoPolySource, int nIndexePoly, int nIndexeNbPremierPointAAjouter, int nIndexeDernierPointAAjouter)
 Add some points of the nIndexePoly polyline from the geoPolySource geometric path. More...
 
int ParcourtPolyligneAPartirDe (int IndexPointRacine, TYPolyligneParcours *&PolyligneRacine, std::vector< bool > &pEstUnPointIntersectant, TYSetGeometriqueParcours &geoPremierePasse)
 To be commented. More...
 
bool intersects (TYPointParcours &P1, TYPointParcours &P2)
 Check if [P1P2] segment can intersect the geometric path. More...
 
bool intersects (TYSetGeometriqueParcours &geoPasse)
 Tests if the intersecting segments held in this geo parcours, intersect the geo passe in argument, in order to improve convex hull computation. The geo passe must have only one TYPolylineParcours, as it is computed by SecondePasse method. More...
 
bool coincideWith (TYSetGeometriqueParcours &otherGeoPasse)
 Tests if the first polyline of this geo parcours coincide with the geo passe in argument, in order to exit loop during convex hull computation. The geo passe must have only one TYPolylineParcours. More...
 
int SelectionnePointsEntreSetRetDuCoteDeSR (TYSetGeometriqueParcours *geoSR, TYPointParcours **TableauDePoints, int nNbPoints)
 Select points from the current geometric path which are between source and receptor of the geoSR geometric path. More...
 
void CreerTrajetAPartirDuneListeDePointsTriee (TYPointParcours **TableauDePoints, int nNbPoints, bool bSens, bool bGardeIdentifiant)
 Create paths from a sorted points list (Used only for vertical paths) More...
 
bool AppartienneMemePolyligne (TYPointParcours *a, TYPointParcours *b, TYPointParcours *c)
 Check if the points a, b, c belong to the same polyline. More...
 
bool extendListePoint (int nNouvelleTaille)
 Extends the attribute array _ListePoint. More...
 
void Clean ()
 Delete polylines list and points list. More...
 
void Init ()
 Initialize data. More...
 
 TYSetGeometriqueParcours ()
 Constructor. More...
 
 ~TYSetGeometriqueParcours ()
 Destructor. More...
 
void Copy (TYSetGeometriqueParcours &geoIn)
 Copy operator. More...
 
void AllouerPolylignes (int nNbPolylineAllouee)
 Allocation of the polylines list. More...
 
bool PolylignesInfraFermees ()
 Return true if all polylines from infrastructure are closed. More...
 
int MergePointsDoubles ()
 Detect and fix double points. More...
 
int SupressionPolylignesRedondantes ()
 Suppress useless polylines. More...
 
void SeparationDroiteGauche (bool *PointsAGauche, bool *PointsADroite, TYSetGeometriqueParcours &geoGauche, TYSetGeometriqueParcours &geoDroite)
 Separate left and right polylines with two geometric paths. More...
 
bool polyligneContientSouR (int i)
 Returns true if polyligne of index i contains Source or Receptor. More...
 
void MarquePointsADroiteEtAGauche (TYPointParcours &Srce, TYPointParcours &Dest, bool *&PointsAGauche, bool *&PointsADroite)
 Mark points on the left and on the right of the current geometric path. More...
 
void RamenerPointsTraversantLaFrontiere (TYPointParcours &Srce, TYPointParcours &Dest, int *IndexePointsFrontiere, int &NbPointsFrontiere, std::vector< bool > &pEstUnPointIntersectant, bool bCoteGauche, bool *PointsAGauche, bool *PointsADroite)
 To be commented. More...
 
bool ListerPointsConnexes (Connexite *&Connexes, std::vector< bool > &pEstUnPointIntersectant)
 Fill for each point the connectivity with segments. More...
 
bool PremierePasse (TYPointParcours &Srce, TYPointParcours &Dest, int *IndexePointsFrontiere, int NbPointsFrontiere, std::vector< bool > &pEstUnPointIntersectant, Connexite *Connexes, TYSetGeometriqueParcours &geoPremierePasse)
 First pass to build a path along all the intersecting polylines. More...
 
bool SecondePasse (TYSetGeometriqueParcours &geoPremierePasse, TYSetGeometriqueParcours &geoSecondePasse, bool bTrajetsAGaucheDeSR, TYPointParcours **&pTableauEC, int &nbPtsEC)
 Second pass. More...
 
void TriePointsIntersectionSuivantSR (TYPointParcours &Srce, TYPointParcours &Dest, int *IndexePointsFrontiere, int NbPointsFrontiere)
 To be commented. More...
 
bool AjoutePointALaPolyLigne (int indexPolyligne, TYPointParcours &P)
 Add a point P to the polyline indexPolyligne. More...
 
int AjouteLesPointsComprisEntre (TYSetGeometriqueParcours &geoPolySource, int nIndexePoly, int nIndexeNbPremierPointAAjouter, int nIndexeDernierPointAAjouter)
 Add some points of the nIndexePoly polyline from the geoPolySource geometric path. More...
 
int ParcourtPolyligneAPartirDe (int IndexPointRacine, TYPolyligneParcours *&PolyligneRacine, std::vector< bool > &pEstUnPointIntersectant, TYSetGeometriqueParcours &geoPremierePasse)
 To be commented. More...
 
bool intersects (TYPointParcours &P1, TYPointParcours &P2)
 Check if [P1P2] segment can intersect the geometric path. More...
 
int SelectionnePointsEntreSetRetDuCoteDeSR (TYSetGeometriqueParcours *geoSR, TYPointParcours **TableauDePoints, int nNbPoints)
 Select points from the current geometric path which are between source and receptor of the geoSR geometric path. More...
 
void CreerTrajetAPartirDuneListeDePointsTriee (TYPointParcours **TableauDePoints, int nNbPoints, bool bSens, bool bGardeIdentifiant)
 Create paths from a sorted points list (Used only for vertical paths) More...
 
bool AppartienneMemePolyligne (TYPointParcours *a, TYPointParcours *b, TYPointParcours *c)
 Check if the points a, b, c belong to the same polyline. More...
 

Static Public Member Functions

static int EnveloppeConvexeLes2PremiersPointsEtant (TYPointParcours **TableauDePoints, int nNbPoints, TYPointParcours **TableauDePointsECOut, bool bPremiersPointsLesPlusHauts)
 Compute the convex hull (arrays should be allocated before the call) More...
 
static int EnveloppeConvexeLes2PremiersPointsEtant (TYPointParcours **TableauDePoints, int nNbPoints, TYPointParcours **TableauDePointsECOut, bool bPremiersPointsLesPlusHauts)
 Compute the convex hull (arrays should be allocated before the call) More...
 

Public Attributes

TYPolyligneParcours_ListePolylines
 Geometric path as a polylines. More...
 
TYPointParcours_ListePoint
 List of points on the path. More...
 
int _nNbPolylines
 Polylines number. More...
 
int _nNbPolylineAllouee
 Allocated polylines. More...
 
int _nNbPointTotal
 Total number of points. More...
 

Static Public Attributes

static TYPointParcours_ListePointQSort = NULL
 static access to the C function of quicksort More...
 
static TYPointParcours_SrceQSort = NULL
 static access to the C function of quicksort More...
 
static TYPointParcours_DestQSort = NULL
 static access to the C function of quicksort More...
 
static QMutex _mutex
 

Private Member Functions

void SwapPolyligne (int i, int j)
 Swap polylines i and j. More...
 
void SwapPolyligne (int i, int j)
 Swap polylines i and j. More...
 
void Clean ()
 Delete polylines list and points list. More...
 
void Init ()
 Initialize data. More...
 

Static Private Member Functions

static void InverseOrdreDesPoints (TYPointParcours **ListeDePointsAInverser, int nNbPointsDeLaListe)
 Invert a list of points. More...
 
static void InverseOrdreDesPoints (TYPointParcours **ListeDePointsAInverser, int nNbPointsDeLaListe)
 Invert a list of points. More...
 

Detailed Description

Class to build a geometric path used by the TYCalculParcours class.

Definition at line 56 of file TYSetGeometriqueParcours.h.

Constructor & Destructor Documentation

◆ TYSetGeometriqueParcours() [1/2]

TYSetGeometriqueParcours::TYSetGeometriqueParcours ( )
inline

Constructor.

Definition at line 70 of file TYSetGeometriqueParcours.h.

Here is the call graph for this function:

◆ ~TYSetGeometriqueParcours() [1/2]

TYSetGeometriqueParcours::~TYSetGeometriqueParcours ( )
inline

Destructor.

Definition at line 75 of file TYSetGeometriqueParcours.h.

Here is the call graph for this function:

◆ TYSetGeometriqueParcours() [2/2]

TYSetGeometriqueParcours::TYSetGeometriqueParcours ( )
inline

Constructor.

Definition at line 70 of file TYSetGeometriqueParcours.h.

Here is the call graph for this function:

◆ ~TYSetGeometriqueParcours() [2/2]

TYSetGeometriqueParcours::~TYSetGeometriqueParcours ( )
inline

Destructor.

Definition at line 75 of file TYSetGeometriqueParcours.h.

Here is the call graph for this function:

Member Function Documentation

◆ AjouteLesPointsComprisEntre() [1/2]

int TYSetGeometriqueParcours::AjouteLesPointsComprisEntre ( TYSetGeometriqueParcours geoPolySource,
int  nIndexePoly,
int  nIndexeNbPremierPointAAjouter,
int  nIndexeDernierPointAAjouter 
)

Add some points of the nIndexePoly polyline from the geoPolySource geometric path.

Definition at line 992 of file TYSetGeometriqueParcours.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ AjouteLesPointsComprisEntre() [2/2]

int TYSetGeometriqueParcours::AjouteLesPointsComprisEntre ( TYSetGeometriqueParcours geoPolySource,
int  nIndexePoly,
int  nIndexeNbPremierPointAAjouter,
int  nIndexeDernierPointAAjouter 
)

Add some points of the nIndexePoly polyline from the geoPolySource geometric path.

◆ AjoutePointALaPolyLigne() [1/2]

bool TYSetGeometriqueParcours::AjoutePointALaPolyLigne ( int  indexPolyligne,
TYPointParcours P 
)

Add a point P to the polyline indexPolyligne.

Definition at line 486 of file TYSetGeometriqueParcours.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ AjoutePointALaPolyLigne() [2/2]

bool TYSetGeometriqueParcours::AjoutePointALaPolyLigne ( int  indexPolyligne,
TYPointParcours P 
)

Add a point P to the polyline indexPolyligne.

◆ AllouerPolylignes() [1/2]

void TYSetGeometriqueParcours::AllouerPolylignes ( int  nNbPolylineAllouee)
inline

Allocation of the polylines list.

Definition at line 83 of file TYSetGeometriqueParcours.h.

Here is the caller graph for this function:

◆ AllouerPolylignes() [2/2]

void TYSetGeometriqueParcours::AllouerPolylignes ( int  nNbPolylineAllouee)
inline

Allocation of the polylines list.

Definition at line 83 of file TYSetGeometriqueParcours.h.

◆ AppartienneMemePolyligne() [1/2]

bool TYSetGeometriqueParcours::AppartienneMemePolyligne ( TYPointParcours a,
TYPointParcours b,
TYPointParcours c 
)

Check if the points a, b, c belong to the same polyline.

Definition at line 1364 of file TYSetGeometriqueParcours.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ AppartienneMemePolyligne() [2/2]

bool TYSetGeometriqueParcours::AppartienneMemePolyligne ( TYPointParcours a,
TYPointParcours b,
TYPointParcours c 
)

Check if the points a, b, c belong to the same polyline.

◆ Clean() [1/2]

void TYSetGeometriqueParcours::Clean ( )
inline

Delete polylines list and points list.

Definition at line 245 of file TYSetGeometriqueParcours.h.

Here is the caller graph for this function:

◆ Clean() [2/2]

void TYSetGeometriqueParcours::Clean ( )
inlineprivate

Delete polylines list and points list.

Definition at line 220 of file TYSetGeometriqueParcours.h.

◆ coincideWith()

bool TYSetGeometriqueParcours::coincideWith ( TYSetGeometriqueParcours otherGeoPasse)

Tests if the first polyline of this geo parcours coincide with the geo passe in argument, in order to exit loop during convex hull computation. The geo passe must have only one TYPolylineParcours.

Parameters
geoPassethe geo passe which must be tested
Returns
True if an intersection exists

Definition at line 1068 of file TYSetGeometriqueParcours.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Copy() [1/2]

void TYSetGeometriqueParcours::Copy ( TYSetGeometriqueParcours geoIn)

Copy operator.

Definition at line 57 of file TYSetGeometriqueParcours.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Copy() [2/2]

void TYSetGeometriqueParcours::Copy ( TYSetGeometriqueParcours geoIn)

Copy operator.

◆ CreerTrajetAPartirDuneListeDePointsTriee() [1/2]

void TYSetGeometriqueParcours::CreerTrajetAPartirDuneListeDePointsTriee ( TYPointParcours **  TableauDePoints,
int  nNbPoints,
bool  bSens,
bool  bGardeIdentifiant 
)

Create paths from a sorted points list (Used only for vertical paths)

Definition at line 1308 of file TYSetGeometriqueParcours.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CreerTrajetAPartirDuneListeDePointsTriee() [2/2]

void TYSetGeometriqueParcours::CreerTrajetAPartirDuneListeDePointsTriee ( TYPointParcours **  TableauDePoints,
int  nNbPoints,
bool  bSens,
bool  bGardeIdentifiant 
)

Create paths from a sorted points list (Used only for vertical paths)

◆ EnveloppeConvexeLes2PremiersPointsEtant() [1/2]

int TYSetGeometriqueParcours::EnveloppeConvexeLes2PremiersPointsEtant ( TYPointParcours **  TableauDePoints,
int  nNbPoints,
TYPointParcours **  TableauDePointsECOut,
bool  bPremiersPointsLesPlusHauts 
)
static

Compute the convex hull (arrays should be allocated before the call)

Parameters
TableauDePoints[in] Points array (first points are the lower ones)
nNbPoints[in] Size of previous array
TableauDePointsECOut[out] Points array of the convex hull
bPremiersPointsLesPlusHauts[in] True if the first points are the higher ones
Returns
Size array of TableauDePointsECOut

Definition at line 1103 of file TYSetGeometriqueParcours.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ EnveloppeConvexeLes2PremiersPointsEtant() [2/2]

static int TYSetGeometriqueParcours::EnveloppeConvexeLes2PremiersPointsEtant ( TYPointParcours **  TableauDePoints,
int  nNbPoints,
TYPointParcours **  TableauDePointsECOut,
bool  bPremiersPointsLesPlusHauts 
)
static

Compute the convex hull (arrays should be allocated before the call)

Parameters
TableauDePoints[in] Points array (first points are the lower ones)
nNbPoints[in] Size of previous array
TableauDePointsECOut[out] Points array of the convex hull
bPremiersPointsLesPlusHauts[in] True if the first points are the higher ones
Returns
Size array of TableauDePointsECOut

◆ extendListePoint()

bool TYSetGeometriqueParcours::extendListePoint ( int  nNouvelleTaille)

Extends the attribute array _ListePoint.

Parameters
nNouvelleTailleNew size of the array
Returns
True if extension succeeds, false else

Definition at line 1448 of file TYSetGeometriqueParcours.cpp.

Here is the caller graph for this function:

◆ Init() [1/2]

void TYSetGeometriqueParcours::Init ( )
inline

Initialize data.

Definition at line 257 of file TYSetGeometriqueParcours.h.

Here is the caller graph for this function:

◆ Init() [2/2]

void TYSetGeometriqueParcours::Init ( )
inlineprivate

Initialize data.

Definition at line 232 of file TYSetGeometriqueParcours.h.

◆ intersects() [1/3]

bool TYSetGeometriqueParcours::intersects ( TYPointParcours P1,
TYPointParcours P2 
)

Check if [P1P2] segment can intersect the geometric path.

Parameters
P1First point
P2Second point
Returns
True if [P1P2] intersects

Definition at line 1020 of file TYSetGeometriqueParcours.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ intersects() [2/3]

bool TYSetGeometriqueParcours::intersects ( TYPointParcours P1,
TYPointParcours P2 
)

Check if [P1P2] segment can intersect the geometric path.

Parameters
P1First point
P2Second point
Returns
True if [P1P2] intersects

◆ intersects() [3/3]

bool TYSetGeometriqueParcours::intersects ( TYSetGeometriqueParcours geoPasse)

Tests if the intersecting segments held in this geo parcours, intersect the geo passe in argument, in order to improve convex hull computation. The geo passe must have only one TYPolylineParcours, as it is computed by SecondePasse method.

Parameters
geoPassethe geo passe which must be tested
Returns
True if an intersection exists

Definition at line 1053 of file TYSetGeometriqueParcours.cpp.

Here is the call graph for this function:

◆ InverseOrdreDesPoints() [1/2]

void TYSetGeometriqueParcours::InverseOrdreDesPoints ( TYPointParcours **  ListeDePointsAInverser,
int  nNbPointsDeLaListe 
)
staticprivate

Invert a list of points.

Parameters
ListeDePointsAInverser[In] The list of points to be inverted [out] The inverted list
nNbPointsDeLaListePoints number in the list

Definition at line 981 of file TYSetGeometriqueParcours.cpp.

Here is the caller graph for this function:

◆ InverseOrdreDesPoints() [2/2]

static void TYSetGeometriqueParcours::InverseOrdreDesPoints ( TYPointParcours **  ListeDePointsAInverser,
int  nNbPointsDeLaListe 
)
staticprivate

Invert a list of points.

Parameters
ListeDePointsAInverser[In] The list of points to be inverted [out] The inverted list
nNbPointsDeLaListePoints number in the list

◆ ListerPointsConnexes() [1/2]

bool TYSetGeometriqueParcours::ListerPointsConnexes ( Connexite *&  Connexes,
std::vector< bool > &  pEstUnPointIntersectant 
)

Fill for each point the connectivity with segments.

Parameters
ConnexesArray of connectivity
pEstUnPointIntersectantTrue if it is an intersecting point

Definition at line 539 of file TYSetGeometriqueParcours.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ListerPointsConnexes() [2/2]

bool TYSetGeometriqueParcours::ListerPointsConnexes ( Connexite *&  Connexes,
std::vector< bool > &  pEstUnPointIntersectant 
)

Fill for each point the connectivity with segments.

Parameters
ConnexesArray of connectivity
pEstUnPointIntersectantTrue if it is an intersecting point

◆ MarquePointsADroiteEtAGauche() [1/2]

void TYSetGeometriqueParcours::MarquePointsADroiteEtAGauche ( TYPointParcours Srce,
TYPointParcours Dest,
bool *&  PointsAGauche,
bool *&  PointsADroite 
)

Mark points on the left and on the right of the current geometric path.

Parameters
[in]SrceSource point
[in]DestReceptor point
[out]PointsAGaucheBoolean array marking the points on the left
[out]PointsADroiteBoolean array marking the points on the right

Definition at line 277 of file TYSetGeometriqueParcours.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ MarquePointsADroiteEtAGauche() [2/2]

void TYSetGeometriqueParcours::MarquePointsADroiteEtAGauche ( TYPointParcours Srce,
TYPointParcours Dest,
bool *&  PointsAGauche,
bool *&  PointsADroite 
)

Mark points on the left and on the right of the current geometric path.

Parameters
[in]SrceSource point
[in]DestReceptor point
[out]PointsAGaucheBoolean array marking the points on the left
[out]PointsADroiteBoolean array marking the points on the right

◆ MergePointsDoubles() [1/2]

int TYSetGeometriqueParcours::MergePointsDoubles ( )

Detect and fix double points.

Definition at line 163 of file TYSetGeometriqueParcours.cpp.

Here is the call graph for this function:

◆ MergePointsDoubles() [2/2]

int TYSetGeometriqueParcours::MergePointsDoubles ( )

Detect and fix double points.

◆ ParcourtPolyligneAPartirDe() [1/2]

int TYSetGeometriqueParcours::ParcourtPolyligneAPartirDe ( int  IndexPointRacine,
TYPolyligneParcours *&  PolyligneRacine,
std::vector< bool > &  pEstUnPointIntersectant,
TYSetGeometriqueParcours geoPremierePasse 
)

To be commented.

Definition at line 498 of file TYSetGeometriqueParcours.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ParcourtPolyligneAPartirDe() [2/2]

int TYSetGeometriqueParcours::ParcourtPolyligneAPartirDe ( int  IndexPointRacine,
TYPolyligneParcours *&  PolyligneRacine,
std::vector< bool > &  pEstUnPointIntersectant,
TYSetGeometriqueParcours geoPremierePasse 
)

To be commented.

◆ polyligneContientSouR() [1/2]

bool TYSetGeometriqueParcours::polyligneContientSouR ( int  i)

Returns true if polyligne of index i contains Source or Receptor.

Definition at line 403 of file TYSetGeometriqueParcours.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ polyligneContientSouR() [2/2]

bool TYSetGeometriqueParcours::polyligneContientSouR ( int  i)

Returns true if polyligne of index i contains Source or Receptor.

◆ PolylignesInfraFermees() [1/2]

bool TYSetGeometriqueParcours::PolylignesInfraFermees ( )

Return true if all polylines from infrastructure are closed.

Definition at line 523 of file TYSetGeometriqueParcours.cpp.

◆ PolylignesInfraFermees() [2/2]

bool TYSetGeometriqueParcours::PolylignesInfraFermees ( )

Return true if all polylines from infrastructure are closed.

◆ PremierePasse() [1/2]

bool TYSetGeometriqueParcours::PremierePasse ( TYPointParcours Srce,
TYPointParcours Dest,
int *  IndexePointsFrontiere,
int  NbPointsFrontiere,
std::vector< bool > &  pEstUnPointIntersectant,
Connexite Connexes,
TYSetGeometriqueParcours geoPremierePasse 
)

First pass to build a path along all the intersecting polylines.

Parameters
SrceSource
DestReceptor
IndexePointsFrontiereArray of boundary point indices
NbPointsFrontiereBoundary points number
pEstUnPointIntersectantTrue if it is a intersecting point
ConnexesConnectivity points array
geoPremierePasseFirst geometric path
Returns
True if succeeds

Definition at line 667 of file TYSetGeometriqueParcours.cpp.

Here is the call graph for this function:

◆ PremierePasse() [2/2]

bool TYSetGeometriqueParcours::PremierePasse ( TYPointParcours Srce,
TYPointParcours Dest,
int *  IndexePointsFrontiere,
int  NbPointsFrontiere,
std::vector< bool > &  pEstUnPointIntersectant,
Connexite Connexes,
TYSetGeometriqueParcours geoPremierePasse,
int  compteurIter = 0 
)

First pass to build a path along all the intersecting polylines.

Parameters
SrceSource
DestReceptor
IndexePointsFrontiereArray of boundary point indices
NbPointsFrontiereBoundary points number
pEstUnPointIntersectantTrue if it is a intersecting point
ConnexesConnectivity points array
geoPremierePasseFirst geometric path
Returns
True if succeeds

Definition at line 665 of file TYSetGeometriqueParcours.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RamenerPointsTraversantLaFrontiere() [1/2]

void TYSetGeometriqueParcours::RamenerPointsTraversantLaFrontiere ( TYPointParcours Srce,
TYPointParcours Dest,
int *  IndexePointsFrontiere,
int &  NbPointsFrontiere,
std::vector< bool > &  pEstUnPointIntersectant,
bool  bCoteGauche,
bool *  PointsAGauche,
bool *  PointsADroite 
)

To be commented.

Definition at line 200 of file TYSetGeometriqueParcours.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RamenerPointsTraversantLaFrontiere() [2/2]

void TYSetGeometriqueParcours::RamenerPointsTraversantLaFrontiere ( TYPointParcours Srce,
TYPointParcours Dest,
int *  IndexePointsFrontiere,
int &  NbPointsFrontiere,
std::vector< bool > &  pEstUnPointIntersectant,
bool  bCoteGauche,
bool *  PointsAGauche,
bool *  PointsADroite 
)

To be commented.

◆ SecondePasse() [1/2]

bool TYSetGeometriqueParcours::SecondePasse ( TYSetGeometriqueParcours geoPremierePasse,
TYSetGeometriqueParcours geoSecondePasse,
bool  bTrajetsAGaucheDeSR,
TYPointParcours **&  pTableauEC,
int &  nbPtsEC 
)

Second pass.

Parameters
geoPremierePasseFirst geometric path
geoSecondePasseSecond geometric path
bTrajetsAGaucheDeSRFlag to define paths at the left of source-receptor direction
pTableauECArray of points for the convex hull
nbPtsECPoints number of the convex hull
Returns
True if succeeds

Definition at line 757 of file TYSetGeometriqueParcours.cpp.

Here is the call graph for this function:

◆ SecondePasse() [2/2]

bool TYSetGeometriqueParcours::SecondePasse ( TYSetGeometriqueParcours geoPremierePasse,
TYSetGeometriqueParcours geoSecondePasse,
bool  bTrajetsAGaucheDeSR,
TYPointParcours **&  pTableauEC,
int &  nbPtsEC,
int  compteurIter = 0,
bool  bIsLastSecondePasse = false 
)

Second pass.

Parameters
geoPremierePasseFirst geometric path
geoSecondePasseSecond geometric path
bTrajetsAGaucheDeSRFlag to define paths at the left of source-receptor direction
pTableauECArray of points for the convex hull
nbPtsECPoints number of the convex hull
Returns
True if succeeds

Definition at line 759 of file TYSetGeometriqueParcours.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SelectionnePointsEntreSetRetDuCoteDeSR() [1/2]

int TYSetGeometriqueParcours::SelectionnePointsEntreSetRetDuCoteDeSR ( TYSetGeometriqueParcours geoSR,
TYPointParcours **  TableauDePoints,
int  nNbPoints 
)

Select points from the current geometric path which are between source and receptor of the geoSR geometric path.

Parameters
geoSRGeometric path from which the selection happens
TableauDePointsArray of selected points (will contain the source and receptor points of geoSR)
nNbPointsPoints number
Returns
Number of selected points

Definition at line 1208 of file TYSetGeometriqueParcours.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SelectionnePointsEntreSetRetDuCoteDeSR() [2/2]

int TYSetGeometriqueParcours::SelectionnePointsEntreSetRetDuCoteDeSR ( TYSetGeometriqueParcours geoSR,
TYPointParcours **  TableauDePoints,
int  nNbPoints 
)

Select points from the current geometric path which are between source and receptor of the geoSR geometric path.

Parameters
geoSRGeometric path from which the selection happens
TableauDePointsArray of selected points (will contain the source and receptor points of geoSR)
nNbPointsPoints number
Returns
Number of selected points

◆ SeparationDroiteGauche() [1/2]

void TYSetGeometriqueParcours::SeparationDroiteGauche ( bool *  PointsAGauche,
bool *  PointsADroite,
TYSetGeometriqueParcours geoGauche,
TYSetGeometriqueParcours geoDroite 
)

Separate left and right polylines with two geometric paths.

Parameters
[in]PointsAGaucheBoolean array marking the points on the left
[in]PointsADroiteBoolean array marking the points on the right
[out]geoGaucheGeometric path on the left
[out]geoDroiteGeometric path on the right

Definition at line 312 of file TYSetGeometriqueParcours.cpp.

Here is the call graph for this function:

◆ SeparationDroiteGauche() [2/2]

void TYSetGeometriqueParcours::SeparationDroiteGauche ( bool *  PointsAGauche,
bool *  PointsADroite,
TYSetGeometriqueParcours geoGauche,
TYSetGeometriqueParcours geoDroite,
int  compteurIter = 0 
)

Separate left and right polylines with two geometric paths.

Parameters
[in]PointsAGaucheBoolean array marking the points on the left
[in]PointsADroiteBoolean array marking the points on the right
[out]geoGaucheGeometric path on the left
[out]geoDroiteGeometric path on the right

Definition at line 310 of file TYSetGeometriqueParcours.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SupressionPolylignesRedondantes() [1/2]

int TYSetGeometriqueParcours::SupressionPolylignesRedondantes ( )

Suppress useless polylines.

Definition at line 89 of file TYSetGeometriqueParcours.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SupressionPolylignesRedondantes() [2/2]

int TYSetGeometriqueParcours::SupressionPolylignesRedondantes ( )

Suppress useless polylines.

◆ SwapPolyligne() [1/2]

void TYSetGeometriqueParcours::SwapPolyligne ( int  i,
int  j 
)
private

Swap polylines i and j.

Definition at line 81 of file TYSetGeometriqueParcours.cpp.

◆ SwapPolyligne() [2/2]

void TYSetGeometriqueParcours::SwapPolyligne ( int  i,
int  j 
)
private

Swap polylines i and j.

◆ TriePointsIntersectionSuivantSR() [1/2]

void TYSetGeometriqueParcours::TriePointsIntersectionSuivantSR ( TYPointParcours Srce,
TYPointParcours Dest,
int *  IndexePointsFrontiere,
int  NbPointsFrontiere 
)

To be commented.

Definition at line 445 of file TYSetGeometriqueParcours.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ TriePointsIntersectionSuivantSR() [2/2]

void TYSetGeometriqueParcours::TriePointsIntersectionSuivantSR ( TYPointParcours Srce,
TYPointParcours Dest,
int *  IndexePointsFrontiere,
int  NbPointsFrontiere 
)

To be commented.

Member Data Documentation

◆ _DestQSort

static TYPointParcours * TYSetGeometriqueParcours::_DestQSort = NULL
static

static access to the C function of quicksort

Definition at line 67 of file TYSetGeometriqueParcours.h.

◆ _ListePoint

TYPointParcours * TYSetGeometriqueParcours::_ListePoint

List of points on the path.

Definition at line 60 of file TYSetGeometriqueParcours.h.

◆ _ListePointQSort

static TYPointParcours * TYSetGeometriqueParcours::_ListePointQSort = NULL
static

static access to the C function of quicksort

Definition at line 65 of file TYSetGeometriqueParcours.h.

◆ _ListePolylines

TYPolyligneParcours * TYSetGeometriqueParcours::_ListePolylines

Geometric path as a polylines.

Definition at line 59 of file TYSetGeometriqueParcours.h.

◆ _mutex

static QMutex TYSetGeometriqueParcours::_mutex
static

mutex used to serialize TriePointsIntersectionSuivantSR method

Definition at line 68 of file TYSetGeometriqueParcours.h.

◆ _nNbPointTotal

int TYSetGeometriqueParcours::_nNbPointTotal

Total number of points.

Definition at line 63 of file TYSetGeometriqueParcours.h.

◆ _nNbPolylineAllouee

int TYSetGeometriqueParcours::_nNbPolylineAllouee

Allocated polylines.

Definition at line 62 of file TYSetGeometriqueParcours.h.

◆ _nNbPolylines

int TYSetGeometriqueParcours::_nNbPolylines

Polylines number.

Definition at line 61 of file TYSetGeometriqueParcours.h.

◆ _SrceQSort

static TYPointParcours * TYSetGeometriqueParcours::_SrceQSort = NULL
static

static access to the C function of quicksort

Definition at line 66 of file TYSetGeometriqueParcours.h.


The documentation for this class was generated from the following files: