gmsh-TingyuanDoc  0.1
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
ExtrudeParams.h
Go to the documentation of this file.
1 // Gmsh - Copyright (C) 1997-2022 C. Geuzaine, J.-F. Remacle
2 //
3 // See the LICENSE.txt file in the Gmsh root directory for license information.
4 // Please report all issues on https://gitlab.onelab.info/gmsh/gmsh/issues.
5 
6 #ifndef EXTRUDE_PARAMS_H
7 #define EXTRUDE_PARAMS_H
8 
9 #include <vector>
10 #include <map>
11 #include <string>
12 #include "SmoothData.h"
13 #include "SPoint3.h"
14 #include "MElement.h"
15 
16 // geo.Mode
17 #define EXTRUDED_ENTITY 1
18 #define COPIED_ENTITY 2
19 
20 // geo.Type
21 #define TRANSLATE 1
22 #define ROTATE 2
23 #define TRANSLATE_ROTATE 3
24 #define BOUNDARY_LAYER 4
25 
27 public:
29  void fill(int type, double T0, double T1, double T2, double A0, double A1,
30  double A2, double X0, double X1, double X2, double angle);
31  double u(int iLayer, int iElemLayer);
32  void Extrude(int iLayer, int iElemLayer, double &dx, double &dy, double &dz);
33  void Extrude(double t, double &x, double &y, double &z);
34  void GetAffineTransform(std::vector<double> &tfo);
35  struct {
37  bool Recombine;
38  int QuadToTri;
39  int NbLayer;
40  std::vector<int> NbElmLayer;
41  std::vector<double> hLayer;
42  // added by Trevor Strickler 07/07/2013 (determines if a layer is scaled by
43  // source grid size (1) or not (0))...only meant for boundary layers
44  bool ScaleLast;
45  std::map<int, std::pair<double, std::vector<int> > > Holes;
47  } mesh;
48  struct {
49  int Mode;
50  int Type;
51  int Source;
52  double trans[3];
53  double axe[3], pt[3], angle;
54  } geo;
55 
56  // Added by Trevor Strickler: to scale last layer size locally. If one section
57  // of the boundary layer index = 0 or 1 is not supposed to be scaled...that
58  // section's normals will have scaleFactor = 1.0 (exactly 1.0 to all sig figs)
59  // ...however, if that non-scaled section borders a scaled section, the
60  // boundary normals will extrude consistently (an average of scaled and
61  // non-scaled heights).
62  static bool calcLayerScaleFactor[2]; // give a global awareness of whether
63  // last layer scaling is to be used.
64  static smooth_data *normals[2];
65  static std::vector<SPoint3> normalsCoherence;
66 };
67 
68 #endif
ExtrudeParams::trans
double trans[3]
Definition: ExtrudeParams.h:52
ExtrudeParams::ExtrudeParams
ExtrudeParams(int Mode=EXTRUDED_ENTITY)
Definition: ExtrudeParams.cpp:20
ExtrudeParams::BoundaryLayerIndex
int BoundaryLayerIndex
Definition: ExtrudeParams.h:46
ExtrudeParams::pt
double pt[3]
Definition: ExtrudeParams.h:53
ExtrudeParams::geo
struct ExtrudeParams::@15 geo
ExtrudeParams::QuadToTri
int QuadToTri
Definition: ExtrudeParams.h:38
ExtrudeParams::mesh
struct ExtrudeParams::@14 mesh
ExtrudeParams::normalsCoherence
static std::vector< SPoint3 > normalsCoherence
Definition: ExtrudeParams.h:65
EXTRUDED_ENTITY
#define EXTRUDED_ENTITY
Definition: ExtrudeParams.h:17
ExtrudeParams::ScaleLast
bool ScaleLast
Definition: ExtrudeParams.h:44
ExtrudeParams::fill
void fill(int type, double T0, double T1, double T2, double A0, double A1, double A2, double X0, double X1, double X2, double angle)
Definition: ExtrudeParams.cpp:34
ExtrudeParams::NbLayer
int NbLayer
Definition: ExtrudeParams.h:39
ExtrudeParams::GetAffineTransform
void GetAffineTransform(std::vector< double > &tfo)
Definition: ExtrudeParams.cpp:138
ExtrudeParams::Holes
std::map< int, std::pair< double, std::vector< int > > > Holes
Definition: ExtrudeParams.h:45
ExtrudeParams::Recombine
bool Recombine
Definition: ExtrudeParams.h:37
ExtrudeParams::Mode
int Mode
Definition: ExtrudeParams.h:49
smooth_data
Definition: SmoothData.h:53
ExtrudeParams::NbElmLayer
std::vector< int > NbElmLayer
Definition: ExtrudeParams.h:40
ExtrudeParams::Extrude
void Extrude(int iLayer, int iElemLayer, double &dx, double &dy, double &dz)
Definition: ExtrudeParams.cpp:51
ExtrudeParams::ExtrudeMesh
bool ExtrudeMesh
Definition: ExtrudeParams.h:36
ExtrudeParams::Source
int Source
Definition: ExtrudeParams.h:51
ExtrudeParams::u
double u(int iLayer, int iElemLayer)
Definition: ExtrudeParams.cpp:122
ExtrudeParams::ViewIndex
int ViewIndex
Definition: ExtrudeParams.h:46
z
const double z
Definition: GaussQuadratureQuad.cpp:56
MElement.h
ExtrudeParams::calcLayerScaleFactor
static bool calcLayerScaleFactor[2]
Definition: ExtrudeParams.h:62
ExtrudeParams::Type
int Type
Definition: ExtrudeParams.h:50
ExtrudeParams::angle
double angle
Definition: ExtrudeParams.h:53
ExtrudeParams::normals
static smooth_data * normals[2]
Definition: ExtrudeParams.h:64
SPoint3.h
ExtrudeParams
Definition: ExtrudeParams.h:26
ExtrudeParams::hLayer
std::vector< double > hLayer
Definition: ExtrudeParams.h:41
SmoothData.h
ExtrudeParams::axe
double axe[3]
Definition: ExtrudeParams.h:53