gmsh-TingyuanDoc  0.1
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
filterElements.cpp File Reference
#include <algorithm>
#include <vector>
#include <set>
#include "GmshDefines.h"
#include "filterElements.h"
#include "MElement.h"
#include "MTriangle.h"
#include "MQuadrangle.h"
#include "MLine.h"
#include "rtree.h"
#include "robustPredicates.h"
Include dependency graph for filterElements.cpp:

Go to the source code of this file.

Classes

struct  MElement_Wrapper
 
struct  Less_Partition
 

Functions

void MElementBB (void *a, double *min, double *max)
 
int MElementInEle (void *a, double *x)
 
double orientationTest (double a[2], double b[2], double c[2])
 
double orientationTest (MVertex *va, MVertex *vb, MVertex *vc)
 
double orientationTest (SVector3 &va, SVector3 &vb, SVector3 &vc)
 
bool intersectEdge2d (const MEdge &ed1, const MEdge &ed2)
 
bool overlap2D (MElement *e1, MElement *e2)
 
bool rtree_callback (MElement *e1, void *pe2)
 
void filterColumns (std::vector< MElement * > &elem, std::map< MElement *, std::vector< MElement * > > &_elemColumns)
 
static void filterOverlappingElements (std::vector< MLine * > &lines, std::vector< MElement * > &els, std::map< MElement *, std::vector< MElement * > > &_elemColumns, std::map< MElement *, MElement * > &_toFirst)
 
void filterOverlappingElements (std::vector< MLine * > &bdry, std::vector< MTriangle * > &blTris, std::vector< MQuadrangle * > &blQuads, std::map< MElement *, std::vector< MElement * > > &_elemColumns, std::map< MElement *, MElement * > &_toFirst)
 

Function Documentation

◆ filterColumns()

void filterColumns ( std::vector< MElement * > &  elem,
std::map< MElement *, std::vector< MElement * > > &  _elemColumns 
)

Definition at line 183 of file filterElements.cpp.

Referenced by filterOverlappingElements().

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

◆ filterOverlappingElements() [1/2]

void filterOverlappingElements ( std::vector< MLine * > &  bdry,
std::vector< MTriangle * > &  blTris,
std::vector< MQuadrangle * > &  blQuads,
std::map< MElement *, std::vector< MElement * > > &  _elemColumns,
std::map< MElement *, MElement * > &  _toFirst 
)

Definition at line 251 of file filterElements.cpp.

Here is the call graph for this function:

◆ filterOverlappingElements() [2/2]

static void filterOverlappingElements ( std::vector< MLine * > &  lines,
std::vector< MElement * > &  els,
std::map< MElement *, std::vector< MElement * > > &  _elemColumns,
std::map< MElement *, MElement * > &  _toFirst 
)
static

Definition at line 215 of file filterElements.cpp.

Referenced by filterOverlappingElements(), and modifyInitialMeshForBoundaryLayers().

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

◆ intersectEdge2d()

bool intersectEdge2d ( const MEdge ed1,
const MEdge ed2 
)

Definition at line 73 of file filterElements.cpp.

Referenced by overlap2D().

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

◆ MElementBB()

void MElementBB ( void *  a,
double *  min,
double *  max 
)

Definition at line 17 of file MElementOctree.cpp.

Referenced by filterOverlappingElements(), and MElementOctree::MElementOctree().

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

◆ MElementInEle()

int MElementInEle ( void *  a,
double *  x 
)

Definition at line 84 of file MElementOctree.cpp.

Referenced by MElementOctree::find(), MElementOctree::findAll(), and MElementOctree::MElementOctree().

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

◆ orientationTest() [1/3]

double orientationTest ( double  a[2],
double  b[2],
double  c[2] 
)
inline

OVERLAP TEST IN 2D only use predicate orient2D :-)

2 cases

1-->

 ---------*
|         |
|     *--------*
|     |   |    |
 ---------*
      |   |    |
       --------*

2-->

Definition at line 51 of file filterElements.cpp.

Referenced by filterColumns(), intersectEdge2d(), and orientationTest().

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

◆ orientationTest() [2/3]

double orientationTest ( MVertex va,
MVertex vb,
MVertex vc 
)
inline

Definition at line 57 of file filterElements.cpp.

Here is the call graph for this function:

◆ orientationTest() [3/3]

double orientationTest ( SVector3 va,
SVector3 vb,
SVector3 vc 
)
inline

Definition at line 65 of file filterElements.cpp.

Here is the call graph for this function:

◆ overlap2D()

bool overlap2D ( MElement e1,
MElement e2 
)

Definition at line 131 of file filterElements.cpp.

Referenced by rtree_callback().

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

◆ rtree_callback()

bool rtree_callback ( MElement e1,
void *  pe2 
)

Definition at line 152 of file filterElements.cpp.

Referenced by filterOverlappingElements().

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