16 auto accessor = m_PropagationGrid_Ptr->getAccessor();
18 for (openvdb::Int64Grid::ValueOnIter iter = m_GeometryGrid_Ptr->beginValueOn(); iter.test(); ++iter) {
22 else if (nodeType == 3 || nodeType % 10 == 0) {
23 int32_t nodePropagation = accessor.getValue(iter.getCoord());
24 if (isOnWall_N(nodePropagation) && nodeType == 3){
28 else if (isOnWall_S(nodePropagation) && nodeType == 3) {
32 else if (isOnWall_W(nodePropagation) && nodeType == 3) {
36 else if (isOnWall_E(nodePropagation) && nodeType == 3) {
40 else if (isOnWall_T(nodePropagation) && nodeType == 3) {
44 else if (isOnWall_B(nodePropagation) && nodeType == 3) {
48 else if (isOnWall_N(nodePropagation) && nodeType % 10 == 0);
49 else if (isOnWall_S(nodePropagation) && nodeType % 10 == 0);
50 else if (isOnWall_W(nodePropagation) && nodeType % 10 == 0);
51 else if (isOnWall_E(nodePropagation) && nodeType % 10 == 0);
52 else if (isOnWall_T(nodePropagation) && nodeType % 10 == 0);
53 else if (isOnWall_B(nodePropagation) && nodeType % 10 == 0);
73 unsigned int nodeType, nodePropagation;
75 int &i = ijh[0], &j = ijh[1], &h = ijh[2];
76 auto accessorG = m_GeometryGrid_Ptr->getAccessor();
77 auto accessorP = m_PropagationGrid_Ptr->getAccessor();
79 for (openvdb::Int64Grid::ValueOnIter iter = m_GeometryGrid_Ptr->beginValueOn(); iter.test(); ++iter) {
82 ijh = iter.getCoord();
83 nodePropagation = accessorP.getValue(ijh);
120 if (isOnWall_N(nodePropagation)) {
124 else if (isOnWall_S(nodePropagation)) {
128 else if (isOnWall_E(nodePropagation)) {
132 else if (isOnWall_W(nodePropagation)) {
136 else if (isOnWall_B(nodePropagation)) {
140 else if (isOnWall_T(nodePropagation)) {
172 if (isOnWall_N(nodePropagation)) {
176 else if (isOnWall_S(nodePropagation)) {
180 else if (isOnWall_E(nodePropagation)) {
184 else if (isOnWall_W(nodePropagation)) {
188 else if (isOnWall_B(nodePropagation)) {
192 else if (isOnWall_T(nodePropagation)) {
224 if (isOnWall_N(nodePropagation)) {
228 else if (isOnWall_S(nodePropagation)) {
232 else if (isOnWall_E(nodePropagation)) {
236 else if (isOnWall_W(nodePropagation)) {
240 else if (isOnWall_B(nodePropagation)) {
244 else if (isOnWall_T(nodePropagation)) {
256 std::cout <<
"Undefined type of boundary node " << (int) nodeType <<
" (" << i <<
", " << j <<
", " << h <<
")" << std::endl;
264 unsigned char MF::GB::AutoSettingNode::ExternalNodeNormal(int32_t nodePropagation) {
266 if (isInCorner_NET(nodePropagation))
268 else if (isInCorner_NWT(nodePropagation))
270 else if (isInCorner_NEB(nodePropagation))
272 else if (isInCorner_NWB(nodePropagation))
274 else if (isInCorner_SET(nodePropagation))
276 else if (isInCorner_SWT(nodePropagation))
278 else if (isInCorner_SEB(nodePropagation))
280 else if (isInCorner_SWB(nodePropagation))
283 else if (isOnEdge_NW(nodePropagation))
285 else if (isOnEdge_NE(nodePropagation))
287 else if (isOnEdge_NT(nodePropagation))
289 else if (isOnEdge_NB(nodePropagation))
291 else if (isOnEdge_SW(nodePropagation))
293 else if (isOnEdge_SE(nodePropagation))
295 else if (isOnEdge_ST(nodePropagation))
297 else if (isOnEdge_SB(nodePropagation))
299 else if (isOnEdge_WT(nodePropagation))
301 else if (isOnEdge_WB(nodePropagation))
303 else if (isOnEdge_ET(nodePropagation))
305 else if (isOnEdge_EB(nodePropagation))
308 else if (Wall_N(nodePropagation))
310 else if (Wall_S(nodePropagation))
312 else if (Wall_W(nodePropagation))
314 else if (Wall_E(nodePropagation))
316 else if (Wall_T(nodePropagation))
318 else if (Wall_B(nodePropagation))
327 auto accessor = m_GeometryGrid_Ptr->getAccessor();
331 for (openvdb::Int32Grid::ValueOnIter iter = m_PropagationGrid_Ptr->beginValueOn(); iter.test(); ++iter) {
332 xyz = iter.getCoord();
334 if ((value.
node_t.
FF & 134217727) != 134217727) {
struct MF::GB::NodeID::@0::@1 Node
A class that allows to determine the proper NodeID from combined nodeType, uidThreadNr, ThreadCount, ComponentNr and PhaseNr.
void BoundaryFind()
Finds geometry boundary nodes and set its value to 3.
A structure that allows to code/decode in unsigned int number (32bit) the propagation directions of t...
void DefaultTypeSet()
Sets default node types on walls, edges and corners of geometry that are automatically detected and w...
union MF::GB::NodeID::@0 node_id
void NodeTypeClass()
Classifies primary node types (e.g 20,30,40) into subtypes 21,22,23... for North/South/Est/West/Top/B...
union MF::GU::DirectionsD3Q19::@2 node_t