38 searchableSurfaceFeatures,
39 searchableBoxFeatures,
50 const searchableSurface& surface,
51 const dictionary&
dict
54 searchableSurfaceFeatures(surface,
dict),
57 extendedFeatureEdgeMesh::sideVolumeTypeNames_
59 dict.lookupOrDefault<word>(
"meshableSide",
"inside")
64 <<
" Meshable region = "
81 autoPtr<extendedFeatureEdgeMesh> features;
92 edgeNormals[eI].setSize(2, 0);
94 edgeNormals[0][0] = 2; edgeNormals[0][1] = 4;
95 edgeNormals[1][0] = 1; edgeNormals[1][1] = 4;
96 edgeNormals[2][0] = 3; edgeNormals[2][1] = 4;
97 edgeNormals[3][0] = 0; edgeNormals[3][1] = 4;
98 edgeNormals[4][0] = 2; edgeNormals[4][1] = 5;
99 edgeNormals[5][0] = 1; edgeNormals[5][1] = 5;
100 edgeNormals[6][0] = 3; edgeNormals[6][1] = 5;
101 edgeNormals[7][0] = 0; edgeNormals[7][1] = 5;
102 edgeNormals[8][0] = 0; edgeNormals[8][1] = 2;
103 edgeNormals[9][0] = 2; edgeNormals[9][1] = 1;
104 edgeNormals[10][0] = 1; edgeNormals[10][1] = 3;
105 edgeNormals[11][0] = 3; edgeNormals[11][1] = 0;
107 tmp<pointField> surfacePointsTmp(surface().
points());
108 pointField& surfacePoints = surfacePointsTmp();
110 forAll(edgeDirections, eI)
117 for (
label j = 0; j < 2; ++j)
120 (faceNormals[edgeNormals[eI][j]] ^ edgeDirections[eI]);
122 0.5*(
max(surfacePoints +
min(surfacePoints)))
125 normalDirections[eI][j] =
129 & (fC0tofE0/(
mag(fC0tofE0)+ VSMALL))
140 forAll(featurePointNormals, pI)
142 labelList& ftPtEdges = featurePointEdges[pI];
152 ftPtEdges[edgeI++] = eI;
154 else if (
e.end() == pI)
156 ftPtEdges[edgeI++] = eI;
160 labelList& ftPtNormals = featurePointNormals[pI];
163 ftPtNormals[0] = edgeNormals[ftPtEdges[0]][0];
164 ftPtNormals[1] = edgeNormals[ftPtEdges[0]][1];
165 ftPtNormals[2] = edgeNormals[ftPtEdges[1]][0];
172 new extendedFeatureEdgeMesh
176 surface().
name() +
".extendedFeatureEdgeMesh",
177 surface().instance(),
178 "extendedFeatureEdgeMesh",