gmsh-TingyuanDoc  0.1
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
curvature.cpp File Reference
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include "curvature.h"
Include dependency graph for curvature.cpp:

Go to the source code of this file.

Macros

#define tolerance   0.1e-20
 

Functions

static bool Inv4x4ColumnMajor (double m[16], double inv[16], double *det)
 
static void solveEig (double A, double B, double C, double D, double *lambda1, double *v1x, double *v1y, double *lambda2, double *v2x, double *v2y)
 
static int node2trianglescmp (const void *p0, const void *p1)
 
static double normalize (double *n)
 
static void makevector (const double *a, const double *b, double *ba)
 
static double dotprod (double *a, double *b)
 
static void crossprod (double *a, double *b, double *n)
 
static void unitNormal2Triangle (const double *x1, const double *x2, const double *x3, double *n, double *s)
 
static void computeLocalFrame (double *n, double *u, double *v)
 
bool CurvatureRusinkiewicz (const std::vector< int > &triangles, const std::vector< SPoint3 > &nodes, std::vector< std::pair< SVector3, SVector3 > > &nodalCurvatures)
 
bool CurvatureRusinkiewicz (const std::vector< int > &triangles, const std::vector< SPoint3 > &nodes, std::vector< std::pair< SVector3, SVector3 > > &nodalCurvatures, std::vector< double > &nodeNormals)
 

Macro Definition Documentation

◆ tolerance

#define tolerance   0.1e-20

Definition at line 12 of file curvature.cpp.

Function Documentation

◆ computeLocalFrame()

static void computeLocalFrame ( double *  n,
double *  u,
double *  v 
)
static

Definition at line 155 of file curvature.cpp.

Referenced by CurvatureRusinkiewicz().

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

◆ crossprod()

static void crossprod ( double *  a,
double *  b,
double *  n 
)
inlinestatic

Definition at line 138 of file curvature.cpp.

Referenced by computeLocalFrame(), CurvatureRusinkiewicz(), and unitNormal2Triangle().

Here is the caller graph for this function:

◆ CurvatureRusinkiewicz() [1/2]

bool CurvatureRusinkiewicz ( const std::vector< int > &  triangles,
const std::vector< SPoint3 > &  nodes,
std::vector< std::pair< SVector3, SVector3 > > &  nodalCurvatures 
)

Definition at line 172 of file curvature.cpp.

Referenced by computeDiscreteCurvatures().

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

◆ CurvatureRusinkiewicz() [2/2]

bool CurvatureRusinkiewicz ( const std::vector< int > &  triangles,
const std::vector< SPoint3 > &  nodes,
std::vector< std::pair< SVector3, SVector3 > > &  nodalCurvatures,
std::vector< double > &  nodeNormals 
)

Definition at line 341 of file curvature.cpp.

Here is the call graph for this function:

◆ dotprod()

static double dotprod ( double *  a,
double *  b 
)
inlinestatic

Definition at line 133 of file curvature.cpp.

Referenced by CurvatureRusinkiewicz().

Here is the caller graph for this function:

◆ Inv4x4ColumnMajor()

static bool Inv4x4ColumnMajor ( double  m[16],
double  inv[16],
double *  det 
)
static

Definition at line 13 of file curvature.cpp.

Referenced by CurvatureRusinkiewicz().

Here is the caller graph for this function:

◆ makevector()

static void makevector ( const double *  a,
const double *  b,
double *  ba 
)
inlinestatic

Definition at line 126 of file curvature.cpp.

Referenced by CurvatureRusinkiewicz().

Here is the caller graph for this function:

◆ node2trianglescmp()

static int node2trianglescmp ( const void *  p0,
const void *  p1 
)
inlinestatic

Definition at line 105 of file curvature.cpp.

Referenced by CurvatureRusinkiewicz().

Here is the caller graph for this function:

◆ normalize()

static double normalize ( double *  n)
inlinestatic

Definition at line 115 of file curvature.cpp.

Referenced by computeLocalFrame(), CurvatureRusinkiewicz(), and unitNormal2Triangle().

Here is the caller graph for this function:

◆ solveEig()

static void solveEig ( double  A,
double  B,
double  C,
double  D,
double *  lambda1,
double *  v1x,
double *  v1y,
double *  lambda2,
double *  v2x,
double *  v2y 
)
static

Definition at line 61 of file curvature.cpp.

Referenced by CurvatureRusinkiewicz().

Here is the caller graph for this function:

◆ unitNormal2Triangle()

static void unitNormal2Triangle ( const double *  x1,
const double *  x2,
const double *  x3,
double *  n,
double *  s 
)
inlinestatic

Definition at line 145 of file curvature.cpp.

Referenced by CurvatureRusinkiewicz().

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