org.jcae.mesh.oemm
Class OEMM.Node

java.lang.Object
  extended by org.jcae.mesh.oemm.OEMM.Node
All Implemented Interfaces:
java.io.Serializable
Enclosing class:
OEMM

public static class OEMM.Node
extends java.lang.Object
implements java.io.Serializable

This class represents octants of an OEMM. Octants can either be leaves or internal nodes.

See Also:
Serialized Form

Field Summary
 TIntArrayList adjLeaves
          List of adjacent leaves.
 OEMM.Node[] child
          Array of 8 children nodes.
 long counter
          Counter.
 java.lang.String file
          File containing vertices and triangles.
 int i0
          Integer coordinates of lower-left corner.
 boolean isLeaf
          Flag set when this node a leaf.
 int j0
          Integer coordinates of lower-left corner.
 int k0
          Integer coordinates of lower-left corner.
 int leafIndex
          Leaf index in OEMM.leaves.
 int maxIndex
          Maximal index allowed for vertices found in this node and its children.
 int minIndex
          First index of all vertices found in this node and its children.
 OEMM.Node parent
          Parent node.
 int size
          Cell size.
 int tn
          Total number of triangles found in this node and its children.
 int vn
          Number of vertices found in this node and its children.
 
Constructor Summary
OEMM.Node(int s, int[] ijk)
          Creates a new leaf.
OEMM.Node(int s, int i0, int j0, int k0)
          Creates a new leaf.
 
Method Summary
 int getMaxIndex()
          This methods calculate mexIndex of OEMM.Node.
 void setPathComponents(java.util.ArrayList<java.lang.String> dir, int octant)
           
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

i0

public int i0
Integer coordinates of lower-left corner.


j0

public int j0
Integer coordinates of lower-left corner.


k0

public int k0
Integer coordinates of lower-left corner.


size

public int size
Cell size. It is equal to (1 << (OEMM.MAXLEVEL - depth))


tn

public int tn
Total number of triangles found in this node and its children.


vn

public int vn
Number of vertices found in this node and its children.


child

public transient OEMM.Node[] child
Array of 8 children nodes.


parent

public transient OEMM.Node parent
Parent node.


isLeaf

public transient boolean isLeaf
Flag set when this node a leaf.


file

public transient java.lang.String file
File containing vertices and triangles.


counter

public transient long counter
Counter. This is a temporary variable used by some algorithms.


leafIndex

public int leafIndex
Leaf index in OEMM.leaves.


minIndex

public int minIndex
First index of all vertices found in this node and its children.


maxIndex

public int maxIndex
Maximal index allowed for vertices found in this node and its children.


adjLeaves

public transient TIntArrayList adjLeaves
List of adjacent leaves.

Constructor Detail

OEMM.Node

public OEMM.Node(int s,
                 int i0,
                 int j0,
                 int k0)
Creates a new leaf.

Parameters:
s - cell size
i0 - 1st coordinate of its lower-left corner
j0 - 2nd coordinate of its lower-left corner
k0 - 3rd coordinate of its lower-left corner

OEMM.Node

public OEMM.Node(int s,
                 int[] ijk)
Creates a new leaf.

Parameters:
s - cell size
ijk - coordinates of an interior point
Method Detail

setPathComponents

public void setPathComponents(java.util.ArrayList<java.lang.String> dir,
                              int octant)

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

getMaxIndex

public int getMaxIndex()
This methods calculate mexIndex of OEMM.Node. There is probably back with setting of maxIndex value because maxIndex < minIndex. It is sufficient compute getMaxIndex(n) := minIndex(n) + |maxIndex(n) - minIndex(n)|

Returns:
correct value of maxIndex