|
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().