gmsh-TingyuanDoc
0.1
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
|
Go to the documentation of this file.
22 std::vector<MVertex *>
_v;
23 std::vector<char>
_si;
28 MFace(
const std::vector<MVertex *> &v);
33 return _v[std::size_t(
_si[i])];
69 for(std::size_t i = 0; i < n; i++) {
75 p[0] /=
static_cast<double>(n);
76 p[1] /=
static_cast<double>(n);
77 p[2] /=
static_cast<double>(n);
85 const double ff[3] = {1.0 - u - v, u, v};
86 for(std::size_t i = 0; i < n; i++) {
88 p[0] += v->
x() * ff[i];
89 p[1] += v->
y() * ff[i];
90 p[2] += v->
z() * ff[i];
94 const double ff[4] = {(1 - u) * (1. - v), (1 + u) * (1. - v),
95 (1 + u) * (1. + v), (1 - u) * (1. + v)};
96 for(std::size_t i = 0; i < n; i++) {
98 p[0] += v->
x() * ff[i] * 0.25;
99 p[1] += v->
y() * ff[i] * 0.25;
100 p[2] += v->
z() * ff[i] * 0.25;
105 "Cannot interpolate inside a polygonal MFace with more than 4 edges");
126 struct MFaceEqual :
public std::binary_function<MFace, MFace, bool> {
149 std::vector<MVertex *>
_v;
153 MFaceN(
int type,
int order,
const std::vector<MVertex *> &v);
SVector3 crossprod(const SVector3 &a, const SVector3 &b)
int getNumCorners() const
bool operator()(const MFace &f1, const MFace &f2) const
bool isTriangular() const
SPoint3 barycenter() const
SVector3 tangent(int num) const
static void Error(const char *fmt,...)
std::size_t getNum() const
MEdge getEdge(std::size_t i) const
MVertex * getSortedVertex(std::size_t i) const
std::size_t getNumVertices() const
bool operator!=(const MFace &f1, const MFace &f2)
SPoint3 pnt(double u, double v) const
SVector3 tangent(double u, double v, int num) const
SPoint3 interpolate(const double &u, const double &v) const
std::vector< MVertex * > _v
int getPolynomialOrder() const
MVertex * getVertex(std::size_t i) const
const std::vector< MVertex * > & getVertices() const
SVector3 normal(double u, double v) const
MVertex * getVertex(std::size_t i) const
std::vector< MVertex * > _v
MEdgeN getHighOrderEdge(int num, int sign) const
void getOrderedVertices(std::vector< MVertex * > &verts) const
bool operator()(const MFace &f1, const MFace &f2) const
void frame(double u, double v, SVector3 &t0, SVector3 &t1, SVector3 &n) const
void repositionInnerVertices(const fullMatrix< double > *) const
double approximateArea() const
bool operator==(const MFace &f1, const MFace &f2)
int getNumVerticesOnBoundary() const
void getOrientationFlagForFace(std::vector< int > &faceOrientationFlag)
std::size_t getNumVertices() const
void getOrderedVertices(const MVertex **const verts) const
bool computeCorrespondence(const MFace &, int &, bool &) const