MCPcopy Create free account
hub / github.com/OpenSees/OpenSees / mesh

Method mesh

SRC/element/PFEMElement/TriangleMeshGenerator.cpp:117–174  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

115}
116
117int
118TriangleMeshGenerator::mesh(double size, bool pointOnBoundary)
119{
120 // reset
121 this->reset();
122
123 // get size
124 in.numberofpoints = pointlist.size()/2;
125 in.numberofsegments = segmentlist.size()/2;
126
127 // quick return
128 if(in.numberofsegments < 1) return 0;
129 if(in.numberofpoints < 1) return 0;
130
131 // set pointers
132 in.pointlist = &pointlist[0];
133 in.segmentlist = &segmentlist[0];
134 in.segmentmarkerlist = &segmentmarkerlist[0];
135
136 // meshing
137 char s[128];
138 if (pointOnBoundary) {
139 sprintf(s, "DnQzqpa%.20f", size);
140 } else {
141 sprintf(s, "DnYYQzqpa%.20f", size);
142 }
143 triangulate(s, &in, &out, &vout);
144
145 // reset pointers
146 in.pointlist = NULL;
147 in.segmentlist = NULL;
148 in.segmentmarkerlist = NULL;
149
150 // clear input data
151 pointlist.clear();
152 pointmarkerlist.clear();
153 segmentlist.clear();
154 segmentmarkerlist.clear();
155 trianglelist.clear();
156 neighborlist.clear();
157
158 // copy output data
159 numberofcorners = out.numberofcorners;
160 pointlist.assign(out.pointlist,
161 out.pointlist+out.numberofpoints*2);
162 pointmarkerlist.assign(out.pointmarkerlist,
163 out.pointmarkerlist+out.numberofpoints);
164 trianglelist.assign(out.trianglelist,
165 out.trianglelist+out.numberoftriangles*numberofcorners);
166 neighborlist.assign(out.neighborlist,
167 out.neighborlist+out.numberoftriangles*3);
168
169
170 // clear memory
171 this->reset();
172
173 return 0;
174}

Callers

nothing calls this directly

Calls 3

resetMethod · 0.95
sizeMethod · 0.45
clearMethod · 0.45

Tested by

no test coverage detected