gmsh-TingyuanDoc
0.1
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
|
Go to the documentation of this file.
20 : _model(m), _tag(t), _meshMaster(this), _visible(1), _selection(0),
21 _allElementsVisible(1), _obb(nullptr), va_lines(nullptr),
49 if(r == 0 && g == 0 && b == 255 && a == 0)
return false;
55 std::ostringstream sstream;
60 case AcisModel: sstream <<
" (ACIS)";
break;
67 if(name.size()) sstream <<
": " << name;
82 for(std::size_t i = 0; i <
physicals.size(); i++) {
87 sstream <<
"Physical ";
89 case 0: sstream <<
"Point";
break;
90 case 1: sstream <<
"Curve";
break;
91 case 2: sstream <<
"Surface";
break;
92 case 3: sstream <<
"Volume";
break;
97 if(name.size()) sstream <<
": " << name;
109 sstream <<
"Color (" << r <<
", " << g <<
", " << b <<
")";
112 return sstream.str();
130 if(gMaster->
dim() !=
dim()) {
131 Msg::Error(
"Model entity %d of dimension %d cannot"
132 "be the mesh master of entity %d of dimension %d",
140 bool updateCorrespVert)
142 if(gMaster->
dim() !=
dim()) {
143 Msg::Error(
"Model entity %d of dimension %d cannot"
144 "be the mesh master of entity %d of dimension %d",
154 if(tfo.size() != 16) {
155 Msg::Error(
"Periodicity transformation from entity %d to %d (dim %d) has "
156 "%d components, while 16 are required",
157 gMaster->
tag(),
tag(), gMaster->
dim(), tfo.size());
173 std::vector<GFace *> clos =
faces();
174 auto cIter = clos.begin();
175 for(; cIter != clos.end(); ++cIter)
176 (*cIter)->addVerticesInSet(vtcs,
true);
180 std::vector<GEdge *> clos =
edges();
181 auto cIter = clos.begin();
182 for(; cIter != clos.end(); ++cIter)
183 (*cIter)->addVerticesInSet(vtcs,
true);
187 std::vector<GVertex *> clos =
vertices();
188 auto cIter = clos.begin();
189 for(; cIter != clos.end(); ++cIter)
190 (*cIter)->addVerticesInSet(vtcs,
true);
205 std::vector<double> inv;
208 std::set<MVertex *> vtcs;
211 auto vIter = vtcs.begin();
212 for(; vIter != vtcs.end(); ++vIter) {
224 double src[4] = {sv->
x(), sv->
y(), sv->
z(), 1};
225 double xyz[4] = {0, 0, 0, 0};
227 for(
int i = 0; i < 3; i++) {
229 for(
int j = 0; j < 4; j++) xyz[i] += tfo[idx++] * src[j];
248 double src[4] = {sv->
x(), sv->
y(), sv->
z(), 1};
249 double tgt[3] = {0, 0, 0};
251 for(
int i = 0; i < 3; i++)
264 double src[4] = {sv->
x(), sv->
y(), sv->
z(), 1};
265 double tgt[3] = {0, 0, 0};
268 for(
int i = 0; i < 3; i++)
std::vector< double > affineTransform
unsigned int packColor(int R, int G, int B, int A)
std::map< MVertex *, MVertex * > correspondingHighOrderVertices
int unpackBlue(unsigned int X)
static void Error(const char *fmt,...)
VertexArray * va_triangles
std::vector< int > physicals
virtual ModelType getNativeType() const
virtual std::vector< GEdge * > const & edges() const
virtual char getSelection()
unsigned int getNbVtcs() const
void removeMeshVertex(MVertex *v)
std::string getPhysicalName(int dim, int num) const
virtual std::vector< GVertex * > vertices() const
std::vector< MVertex * > mesh_vertices
virtual std::string getTypeString()
void copyMasterCoordinates()
int unpackGreen(unsigned int X)
GEntity(GModel *m, int t)
std::string getElementaryName(int dim, int tag)
void addVerticesInSet(std::set< MVertex * > &, bool closure) const
int unpackAlpha(unsigned int X)
virtual std::string getAdditionalInfoString(bool multline=false)
void setMeshMaster(GEntity *)
virtual char getVisibility()
void updateCorrespondingVertices()
std::map< MVertex *, MVertex * > correspondingVertices
int unpackRed(unsigned int X)
virtual std::vector< GFace * > faces() const
void deleteVertexArrays()
virtual std::string getInfoString(bool additional=true, bool multiline=false)