gmsh-TingyuanDoc  0.1
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
BDS.cpp File Reference
#include <stack>
#include <cmath>
#include <stdio.h>
#include "GmshMessage.h"
#include "OS.h"
#include "robustPredicates.h"
#include "Numeric.h"
#include "BDS.h"
#include "GFace.h"
#include "discreteFace.h"
#include "meshGFaceDelaunayInsertion.h"
#include "qualityMeasures.h"
Include dependency graph for BDS.cpp:

Go to the source code of this file.

Classes

struct  is_not_deleted
 

Functions

static double _cos_N (BDS_Point *_p1, BDS_Point *_p2, BDS_Point *_p3, GFace *gf)
 
double BDS_Face_Validity (GFace *gf, BDS_Face *f)
 
void outputScalarField (std::vector< BDS_Face * > &t, const char *iii, int param, GFace *gf)
 
static void vector_triangle (BDS_Point *p1, BDS_Point *p2, BDS_Point *p3, double c[3])
 
static double vector_triangle_parametric (BDS_Point *p1, BDS_Point *p2, BDS_Point *p3)
 
void normal_triangle (BDS_Point *p1, BDS_Point *p2, BDS_Point *p3, double c[3])
 
static double surface_triangle_param (BDS_Point *p1, BDS_Point *p2, BDS_Point *p3)
 
int Intersect_Edges_2d (double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4, double x[2])
 
static bool is_equivalent (BDS_Edge *e1, BDS_Edge *e2, BDS_Edge *e3, BDS_Edge *o1, BDS_Edge *o2, BDS_Edge *o3)
 
void recur_tag (BDS_Face *t, BDS_GeomEntity *g)
 
template<class IT >
void DESTROOOY (IT beg, IT end)
 
static bool validityOfCavity (const BDS_Point *p, const std::vector< BDS_Point * > &nbg)
 
static bool getOrderedNeighboringVertices (BDS_Point *p, std::vector< BDS_Point * > &nbg, std::vector< BDS_Face * > &ts, int CHECK)
 
static double getTutteEnergy (const BDS_Point *p, const std::vector< BDS_Point * > &nbg, double &RATIO)
 
static void getCentroidUV (const BDS_Point *p, GFace *gf, const std::vector< SPoint2 > &kernel, const std::vector< double > &lc, double &U, double &V, double &LC)
 
static void getCentroidUV (const std::vector< SPoint2 > &kernel, const std::vector< double > &lc, double &U, double &V, double &LC)
 
static void getIntersection (const SPoint2 &p1, const SPoint2 &p2, const SPoint2 &q1, const SPoint2 &q2, double x[2])
 
static void computeSomeKindOfKernel (const BDS_Point *p, const std::vector< BDS_Point * > &nbg, std::vector< SPoint2 > &kernel, std::vector< double > &lc, int check)
 
static GPoint _closestPoint (BDS_Point *p, GFace *gf, const std::vector< SPoint2 > &kernel, SPoint3 &target, int N)
 
static bool minimizeTutteEnergyProj (BDS_Point *p, double E_unmoved, double RATIO, const std::vector< BDS_Point * > &nbg, const std::vector< SPoint2 > &kernel, const std::vector< double > &lc, GFace *gf, int check)
 
static bool minimizeTutteEnergyParam (BDS_Point *p, double E_unmoved, double RATIO1, const std::vector< BDS_Point * > &nbg, const std::vector< SPoint2 > &kernel, const std::vector< double > &lc, GFace *gf, int check)
 

Function Documentation

◆ _closestPoint()

static GPoint _closestPoint ( BDS_Point p,
GFace gf,
const std::vector< SPoint2 > &  kernel,
SPoint3 target,
int  N 
)
static

Definition at line 1483 of file BDS.cpp.

Referenced by minimizeTutteEnergyProj().

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

◆ _cos_N()

static double _cos_N ( BDS_Point _p1,
BDS_Point _p2,
BDS_Point _p3,
GFace gf 
)
static

Definition at line 21 of file BDS.cpp.

Referenced by BDS_Face_Validity(), and BDS_SwapEdgeTestNormals::operator()().

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

◆ BDS_Face_Validity()

double BDS_Face_Validity ( GFace gf,
BDS_Face f 
)

Definition at line 33 of file BDS.cpp.

Referenced by refineMeshBDS().

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

◆ computeSomeKindOfKernel()

static void computeSomeKindOfKernel ( const BDS_Point p,
const std::vector< BDS_Point * > &  nbg,
std::vector< SPoint2 > &  kernel,
std::vector< double > &  lc,
int  check 
)
inlinestatic

Definition at line 1396 of file BDS.cpp.

Referenced by BDS_Mesh::smooth_point_centroid().

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

◆ DESTROOOY()

template<class IT >
void DESTROOOY ( IT  beg,
IT  end 
)

Definition at line 630 of file BDS.cpp.

Referenced by BDS_Mesh::~BDS_Mesh().

Here is the caller graph for this function:

◆ getCentroidUV() [1/2]

static void getCentroidUV ( const BDS_Point p,
GFace gf,
const std::vector< SPoint2 > &  kernel,
const std::vector< double > &  lc,
double &  U,
double &  V,
double &  LC 
)
inlinestatic

Definition at line 1338 of file BDS.cpp.

Referenced by minimizeTutteEnergyParam(), and minimizeTutteEnergyProj().

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

◆ getCentroidUV() [2/2]

static void getCentroidUV ( const std::vector< SPoint2 > &  kernel,
const std::vector< double > &  lc,
double &  U,
double &  V,
double &  LC 
)
inlinestatic

Definition at line 1368 of file BDS.cpp.

◆ getIntersection()

static void getIntersection ( const SPoint2 p1,
const SPoint2 p2,
const SPoint2 q1,
const SPoint2 q2,
double  x[2] 
)
inlinestatic

Definition at line 1383 of file BDS.cpp.

Referenced by computeSomeKindOfKernel().

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

◆ getOrderedNeighboringVertices()

static bool getOrderedNeighboringVertices ( BDS_Point p,
std::vector< BDS_Point * > &  nbg,
std::vector< BDS_Face * > &  ts,
int  CHECK 
)
inlinestatic

Definition at line 1246 of file BDS.cpp.

Referenced by BDS_Mesh::smooth_point_centroid().

Here is the caller graph for this function:

◆ getTutteEnergy()

static double getTutteEnergy ( const BDS_Point p,
const std::vector< BDS_Point * > &  nbg,
double &  RATIO 
)
inlinestatic

Definition at line 1317 of file BDS.cpp.

Referenced by minimizeTutteEnergyParam(), minimizeTutteEnergyProj(), and BDS_Mesh::smooth_point_centroid().

Here is the caller graph for this function:

◆ Intersect_Edges_2d()

int Intersect_Edges_2d ( double  x1,
double  y1,
double  x2,
double  y2,
double  x3,
double  y3,
double  x4,
double  y4,
double  x[2] 
)

Definition at line 307 of file BDS.cpp.

Referenced by BDS_Mesh::recover_edge().

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

◆ is_equivalent()

static bool is_equivalent ( BDS_Edge e1,
BDS_Edge e2,
BDS_Edge e3,
BDS_Edge o1,
BDS_Edge o2,
BDS_Edge o3 
)
static

Definition at line 451 of file BDS.cpp.

Referenced by BDS_Mesh::find_triangle().

Here is the caller graph for this function:

◆ minimizeTutteEnergyParam()

static bool minimizeTutteEnergyParam ( BDS_Point p,
double  E_unmoved,
double  RATIO1,
const std::vector< BDS_Point * > &  nbg,
const std::vector< SPoint2 > &  kernel,
const std::vector< double > &  lc,
GFace gf,
int  check 
)
inlinestatic

Definition at line 1573 of file BDS.cpp.

Referenced by BDS_Mesh::smooth_point_centroid().

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

◆ minimizeTutteEnergyProj()

static bool minimizeTutteEnergyProj ( BDS_Point p,
double  E_unmoved,
double  RATIO,
const std::vector< BDS_Point * > &  nbg,
const std::vector< SPoint2 > &  kernel,
const std::vector< double > &  lc,
GFace gf,
int  check 
)
inlinestatic

Definition at line 1514 of file BDS.cpp.

Referenced by BDS_Mesh::smooth_point_centroid().

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

◆ normal_triangle()

void normal_triangle ( BDS_Point p1,
BDS_Point p2,
BDS_Point p3,
double  c[3] 
)

Definition at line 185 of file BDS.cpp.

Referenced by _cos_N(), and edgeSwapTestAngle().

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

◆ outputScalarField()

void outputScalarField ( std::vector< BDS_Face * > &  t,
const char *  iii,
int  param,
GFace gf 
)

Definition at line 46 of file BDS.cpp.

Referenced by meshGenerator(), meshGeneratorPeriodic(), BDS_Mesh::recover_edge(), recoverEdge(), and refineMeshBDS().

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

◆ recur_tag()

void recur_tag ( BDS_Face t,
BDS_GeomEntity g 
)

Definition at line 605 of file BDS.cpp.

Referenced by meshGenerator(), and meshGeneratorPeriodic().

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

◆ surface_triangle_param()

static double surface_triangle_param ( BDS_Point p1,
BDS_Point p2,
BDS_Point p3 
)
static

Definition at line 191 of file BDS.cpp.

Referenced by BDS_Mesh::collapse_edge_parametric(), BDS_SwapEdgeTestQuality::operator()(), BDS_SwapEdgeTestNormals::operator()(), and BDS_Mesh::split_edge().

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

◆ validityOfCavity()

static bool validityOfCavity ( const BDS_Point p,
const std::vector< BDS_Point * > &  nbg 
)
inlinestatic

Definition at line 1224 of file BDS.cpp.

Referenced by minimizeTutteEnergyParam(), and minimizeTutteEnergyProj().

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

◆ vector_triangle()

static void vector_triangle ( BDS_Point p1,
BDS_Point p2,
BDS_Point p3,
double  c[3] 
)
static

Definition at line 167 of file BDS.cpp.

Referenced by normal_triangle().

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

◆ vector_triangle_parametric()

static double vector_triangle_parametric ( BDS_Point p1,
BDS_Point p2,
BDS_Point p3 
)
static

Definition at line 177 of file BDS.cpp.

Referenced by surface_triangle_param().

Here is the caller graph for this function: