gmsh-TingyuanDoc
0.1
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
|
#include <DivideAndConquer.h>
Public Member Functions | |
DocRecord (int n) | |
double & | x (int i) |
double & | y (int i) |
void *& | data (int i) |
void | setPoints (fullMatrix< double > *p) |
~DocRecord () | |
void | MakeMeshWithPoints () |
void | Voronoi () |
int | hullSize () |
int | onHull (PointNumero i) |
void | makePosView (const std::string &, GFace *gf=nullptr) |
void | printMedialAxis (Octree *_octree, const std::string &, GFace *gf=nullptr, GEdge *ge=nullptr) |
void | voronoiCell (PointNumero pt, std::vector< SPoint2 > &pts) const |
void | addBoundaryEdge (void *p1, void *p2) |
bool | lookForBoundaryEdge (void *p1, void *p2) |
void | recur_tag_triangles (int, std::set< int > &, std::map< std::pair< void *, void * >, std::pair< int, int > > &) |
std::set< int > | tagInterior (double, double) |
void | concave (double, double, GFace *) |
bool | contain (int, int, int) |
void | add (int, int) |
void | initialize () |
bool | remove_point (int) |
void | remove_all () |
void | add_point (double, double, GFace *) |
void | add_edge (void *p1, void *p2) |
bool | find_edge (void *p1, void *p2) |
void | build_edges () |
void | clear_edges () |
bool | delaunay_conformity (GFace *) |
PointNumero * | ConvertDlistToArray (DListPeek *dlist, int *n) |
Public Attributes | |
STriangle * | _adjacencies |
int | numPoints |
int | size_points |
PointRecord * | points |
int | numTriangles |
Triangle * | triangles |
std::set< std::pair< void *, void * > > | boundaryEdges |
std::set< std::pair< void *, void * > > | mesh_edges |
Private Member Functions | |
PointNumero | Predecessor (PointNumero a, PointNumero b) |
PointNumero | Successor (PointNumero a, PointNumero b) |
int | FixFirst (PointNumero x, PointNumero f) |
PointNumero | First (PointNumero x) |
int | IsLeftOf (PointNumero x, PointNumero y, PointNumero check) |
int | IsRightOf (PointNumero x, PointNumero y, PointNumero check) |
Segment | LowerCommonTangent (DT vl, DT vr) |
Segment | UpperCommonTangent (DT vl, DT vr) |
int | Qtest (PointNumero h, PointNumero i, PointNumero j, PointNumero k) |
int | Merge (DT vl, DT vr) |
DT | RecurTrig (PointNumero left, PointNumero right) |
int | DListInsert (PointNumero centerPoint, PointNumero newPoint) |
int | Insert (PointNumero a, PointNumero b) |
int | DListDelete (DListPeek *dlist, PointNumero oldPoint) |
int | Delete (PointNumero a, PointNumero b) |
void | ConvertDListToVoronoiData () |
int | ConvertDListToTriangles () |
void | RemoveAllDList () |
int | BuildDelaunay () |
int | CountPointsOnHull () |
void | ConvexHull () |
bool | AdjacentNullptrExists () |
Private Attributes | |
int | _hullSize |
PointNumero * | _hull |
Definition at line 64 of file DivideAndConquer.h.
DocRecord::DocRecord | ( | int | n | ) |
Definition at line 829 of file DivideAndConquer.cpp.
DocRecord::~DocRecord | ( | ) |
Definition at line 836 of file DivideAndConquer.cpp.
void DocRecord::add | ( | int | index1, |
int | index2 | ||
) |
Definition at line 1017 of file DivideAndConquer.cpp.
Referenced by concave().
|
inline |
Definition at line 147 of file DivideAndConquer.h.
Referenced by build_edges().
void DocRecord::add_point | ( | double | x, |
double | y, | ||
GFace * | face | ||
) |
|
inline |
Definition at line 118 of file DivideAndConquer.h.
Referenced by concave().
|
private |
Definition at line 847 of file DivideAndConquer.cpp.
Referenced by MakeMeshWithPoints().
void DocRecord::build_edges | ( | ) |
|
private |
Definition at line 310 of file DivideAndConquer.cpp.
Referenced by MakeMeshWithPoints(), and Voronoi().
void DocRecord::clear_edges | ( | ) |
Definition at line 1085 of file DivideAndConquer.cpp.
void DocRecord::concave | ( | double | x, |
double | y, | ||
GFace * | gf | ||
) |
bool DocRecord::contain | ( | int | index1, |
int | index2, | ||
int | index3 | ||
) |
Definition at line 998 of file DivideAndConquer.cpp.
PointNumero * DocRecord::ConvertDlistToArray | ( | DListPeek * | dlist, |
int * | n | ||
) |
Definition at line 488 of file DivideAndConquer.cpp.
Referenced by ConvertDListToTriangles(), and ConvertDListToVoronoiData().
|
private |
Definition at line 762 of file DivideAndConquer.cpp.
Referenced by MakeMeshWithPoints().
|
private |
Definition at line 515 of file DivideAndConquer.cpp.
Referenced by Voronoi().
|
private |
Definition at line 471 of file DivideAndConquer.cpp.
Referenced by ConvertDListToVoronoiData().
|
private |
Definition at line 452 of file DivideAndConquer.cpp.
Referenced by ConvertDListToTriangles(), and ConvertDListToVoronoiData().
|
inline |
Definition at line 101 of file DivideAndConquer.h.
Referenced by add(), build_edges(), recur_tag_triangles(), setPoints(), and tagInterior().
bool DocRecord::delaunay_conformity | ( | GFace * | gf | ) |
|
private |
Definition at line 444 of file DivideAndConquer.cpp.
Referenced by Merge().
|
private |
Definition at line 413 of file DivideAndConquer.cpp.
Referenced by Delete().
|
private |
Definition at line 319 of file DivideAndConquer.cpp.
Referenced by Insert().
|
inline |
Definition at line 153 of file DivideAndConquer.h.
Referenced by delaunay_conformity().
|
private |
Definition at line 77 of file DivideAndConquer.cpp.
Referenced by ConvexHull(), CountPointsOnHull(), LowerCommonTangent(), and UpperCommonTangent().
|
private |
Definition at line 59 of file DivideAndConquer.cpp.
Referenced by Merge(), and RecurTrig().
|
inline |
Definition at line 106 of file DivideAndConquer.h.
void DocRecord::initialize | ( | ) |
Definition at line 1024 of file DivideAndConquer.cpp.
|
private |
Definition at line 406 of file DivideAndConquer.cpp.
Referenced by Merge(), and RecurTrig().
|
private |
Definition at line 82 of file DivideAndConquer.cpp.
Referenced by IsRightOf(), Merge(), and UpperCommonTangent().
|
private |
Definition at line 94 of file DivideAndConquer.cpp.
Referenced by ConvertDListToTriangles(), DListInsert(), LowerCommonTangent(), makePosView(), Merge(), and RecurTrig().
|
inline |
Definition at line 124 of file DivideAndConquer.h.
Referenced by recur_tag_triangles().
Definition at line 99 of file DivideAndConquer.cpp.
Referenced by Merge().
void DocRecord::MakeMeshWithPoints | ( | ) |
Definition at line 855 of file DivideAndConquer.cpp.
Referenced by SOrientedBoundingBox::buildOBB(), concave(), meshGenerator(), and meshGeneratorPeriodic().
void DocRecord::makePosView | ( | const std::string & | fileName, |
GFace * | gf = nullptr |
||
) |
Definition at line 178 of file DivideAndConquer.cpp.
Referenced by RecurTrig().
|
inline |
Definition at line 107 of file DivideAndConquer.h.
Referenced by makePosView(), and printMedialAxis().
|
private |
Definition at line 33 of file DivideAndConquer.cpp.
Referenced by LowerCommonTangent(), Merge(), and UpperCommonTangent().
|
private |
Definition at line 158 of file DivideAndConquer.cpp.
Referenced by Merge().
void DocRecord::recur_tag_triangles | ( | int | iTriangle, |
std::set< int > & | taggedTriangles, | ||
std::map< std::pair< void *, void * >, std::pair< int, int > > & | edgesToTriangles | ||
) |
Definition at line 886 of file DivideAndConquer.cpp.
Referenced by tagInterior().
|
private |
Definition at line 253 of file DivideAndConquer.cpp.
Referenced by BuildDelaunay().
void DocRecord::remove_all | ( | ) |
Definition at line 1039 of file DivideAndConquer.cpp.
bool DocRecord::remove_point | ( | int | index | ) |
Definition at line 1029 of file DivideAndConquer.cpp.
|
private |
Definition at line 812 of file DivideAndConquer.cpp.
Referenced by MakeMeshWithPoints().
void DocRecord::setPoints | ( | fullMatrix< double > * | p | ) |
|
private |
Definition at line 46 of file DivideAndConquer.cpp.
Referenced by ConvexHull(), CountPointsOnHull(), LowerCommonTangent(), Merge(), and UpperCommonTangent().
std::set< int > DocRecord::tagInterior | ( | double | x, |
double | y | ||
) |
Definition at line 913 of file DivideAndConquer.cpp.
Referenced by concave().
Definition at line 128 of file DivideAndConquer.cpp.
Referenced by Merge().
void DocRecord::Voronoi | ( | ) |
void DocRecord::voronoiCell | ( | PointNumero | pt, |
std::vector< SPoint2 > & | pts | ||
) | const |
Definition at line 534 of file DivideAndConquer.cpp.
Referenced by makePosView(), and printMedialAxis().
|
inline |
Definition at line 99 of file DivideAndConquer.h.
Referenced by add_point(), concave(), First(), FixFirst(), IsLeftOf(), IsRightOf(), LowerCommonTangent(), printMedialAxis(), setPoints(), tagInterior(), and UpperCommonTangent().
|
inline |
Definition at line 100 of file DivideAndConquer.h.
Referenced by add_point(), concave(), IsLeftOf(), IsRightOf(), LowerCommonTangent(), printMedialAxis(), setPoints(), tagInterior(), and UpperCommonTangent().
STriangle* DocRecord::_adjacencies |
Definition at line 92 of file DivideAndConquer.h.
Referenced by build_edges(), ConvertDListToVoronoiData(), makePosView(), printMedialAxis(), voronoiCell(), and ~DocRecord().
|
private |
Definition at line 67 of file DivideAndConquer.h.
Referenced by ConvertDListToVoronoiData(), ConvexHull(), onHull(), and ~DocRecord().
|
private |
Definition at line 66 of file DivideAndConquer.h.
Referenced by ConvertDListToVoronoiData(), hullSize(), and onHull().
std::set<std::pair<void *, void *> > DocRecord::boundaryEdges |
Definition at line 116 of file DivideAndConquer.h.
Referenced by addBoundaryEdge(), and lookForBoundaryEdge().
std::set<std::pair<void *, void *> > DocRecord::mesh_edges |
Definition at line 145 of file DivideAndConquer.h.
Referenced by add_edge(), clear_edges(), and find_edge().
int DocRecord::numPoints |
Definition at line 93 of file DivideAndConquer.h.
Referenced by add_point(), AdjacentNullptrExists(), build_edges(), BuildDelaunay(), SOrientedBoundingBox::buildOBB(), concave(), ConvertDListToTriangles(), ConvertDListToVoronoiData(), ConvexHull(), CountPointsOnHull(), DocRecord(), initialize(), MakeMeshWithPoints(), makePosView(), meshGenerator(), meshGeneratorPeriodic(), printMedialAxis(), remove_all(), RemoveAllDList(), setPoints(), Voronoi(), and ~DocRecord().
int DocRecord::numTriangles |
Definition at line 96 of file DivideAndConquer.h.
Referenced by SOrientedBoundingBox::buildOBB(), ConvertDListToTriangles(), meshGenerator(), meshGeneratorPeriodic(), and tagInterior().
PointRecord* DocRecord::points |
Definition at line 95 of file DivideAndConquer.h.
Referenced by add(), add_point(), AdjacentNullptrExists(), build_edges(), BuildDelaunay(), SOrientedBoundingBox::buildOBB(), concave(), contain(), ConvertDListToTriangles(), ConvertDListToVoronoiData(), ConvexHull(), CountPointsOnHull(), data(), Delete(), DListInsert(), DocRecord(), First(), FixFirst(), initialize(), IsLeftOf(), makePosView(), meshGenerator(), meshGeneratorPeriodic(), Predecessor(), printMedialAxis(), Qtest(), recur_tag_triangles(), remove_all(), remove_point(), RemoveAllDList(), Successor(), tagInterior(), voronoiCell(), x(), y(), and ~DocRecord().
int DocRecord::size_points |
Definition at line 94 of file DivideAndConquer.h.
Triangle* DocRecord::triangles |
Definition at line 97 of file DivideAndConquer.h.
Referenced by SOrientedBoundingBox::buildOBB(), concave(), ConvertDListToTriangles(), meshGenerator(), meshGeneratorPeriodic(), recur_tag_triangles(), tagInterior(), and ~DocRecord().