Node3Leaf

References
public class Node3Leaf
Represents a single element in a recursive Oc-tree Node structure.

Constructors

Node3Leaf

#
public Node3Leaf()
Blank constructor

Node3Leaf

#
public Node3Leaf(double x0, double x1, double y0, double y1, double z0, double z1)
Box constructor. Create an empty leaf with a specific box.
x0 (double)
x1 (double)
y0 (double)
y1 (double)
z0 (double)
z1 (double)

Node3Leaf

#
public Node3Leaf(Node3Leaf other)
Copy constructor
other (Node3Leaf)Leaf to mimic

Fields

m_A

#
protected Node3Leaf m_A

m_B

#
protected Node3Leaf m_B

m_C

#
protected Node3Leaf m_C

m_D

#
protected Node3Leaf m_D

m_E

#
protected Node3Leaf m_E

m_F

#
protected Node3Leaf m_F

m_G

#
protected Node3Leaf m_G

m_H

#
protected Node3Leaf m_H

m_x0

#
protected double m_x0

m_x1

#
protected double m_x1

m_y0

#
protected double m_y0

m_y1

#
protected double m_y1

m_z0

#
protected double m_z0

m_z1

#
protected double m_z1

Properties

A

#
public Node3Leaf A { get; }

B

#
public Node3Leaf B { get; }

C

#
public Node3Leaf C { get; }

D

#
public Node3Leaf D { get; }

E

#
public Node3Leaf E { get; }

F

#
public Node3Leaf F { get; }

G

#
public Node3Leaf G { get; }

H

#
public Node3Leaf H { get; }

Nodes

#
public List<int> Nodes { get; }
Gets the indices of all nodes which are contained in this leaf.

SubLeafCount

#
public int SubLeafCount { get; }

x_max

#
public double x_max { get; }
Gets the right bounary of the Leaf space.

x_mid

#
public double x_mid { get; }
Gets the vertical center axis of the Leaf space.

x_min

#
public double x_min { get; }
Gets the left bounary of the Leaf space.

y_max

#
public double y_max { get; }
Gets the top bounary of the Leaf space.

y_mid

#
public double y_mid { get; }
Gets the horizontal center axis of the Leaf space.

y_min

#
public double y_min { get; }
Gets the bottom bounary of the Leaf space.

z_max

#
public double z_max { get; }
Gets the top boundary of the Leaf space.

z_mid

#
public double z_mid { get; }
Gets the z center axis of the Leaf space.

z_min

#
public double z_min { get; }
Gets the bottom boundary of the Leaf space.

Methods

Contains

#
public bool Contains(double x, double y, double z)
x (double)
y (double)
z (double)

MaximumDistance

#
public double MaximumDistance(double x, double y, double z)
x (double)
y (double)
z (double)

MaximumDistanceSquared

#
public double MaximumDistanceSquared(double x, double y, double z)
x (double)
y (double)
z (double)

MinimumDistance

#
public double MinimumDistance(double x, double y, double z)
x (double)
y (double)
z (double)

MinimumDistanceSquared

#
public double MinimumDistanceSquared(double x, double y, double z)
x (double)
y (double)
z (double)

PerformLeafAction

#
public void PerformLeafAction(ILeafAction func, bool call_on_empty_leaves)
func (Node3Leaf.ILeafAction)
call_on_empty_leaves (bool)

PerformLeafAction

#
public void PerformLeafAction(LeafAction func, bool call_on_empty_leaves)
func (Node3Leaf.LeafAction)
call_on_empty_leaves (bool)

RemoveNode

#
public bool RemoveNode(Node3List nodes, int nodeTag)
Remove the node with the specified tag from this leaf or any subleafs. This method assumes that a node with a given tag occurs at most once within this subtree. Removing nodes will not close leafs, you need to call TrimExcess() in order to remove empty subleafs or empty nodelists.
nodes (Node3List)Node data.
nodeTag (int)Tag of node.

RemoveNode

#
public bool RemoveNode(Node3List nodes, Node3 node)
Remove the specified node from this leaf or any subleafs. This method assumes that any node occurs at most once within this subtree. Removing nodes will not close leafs, you need to call TrimExcess() in order to remove empty subleafs or empty nodelists.
nodes (Node3List)Node data.
node (Node3)Node to remove.

SolveProximity

#
public void SolveProximity(Node3List nodes, Node3Proximity prox)
Recursive method that solves a proximity search.
nodes (Node3List)Node set to search
prox (Node3Proximity)Proximity object to search with

SubDivide

#
public void SubDivide(Node3List nodes, List<int> index_subset, int group_limit)
Builds a subtree from a Node list.
nodes (Node3List)All the nodes that are supposed to be included in this tree.
index_subset (List<int>)A subset of nodes on which to perform the subdivision. Pass a null-pointer to use ALL nodes. If the list is not null, used indices will be extracted from the list, in order to reduce the number of pointless inclusion tests.
group_limit (int)The number of allowed Nodes per Leaf. If a Leaf contains more than N nodes, it will subdivide.

TrimExcess

#
public void TrimExcess()
Removes empty leaves, empty nodelists and nodelist capacity overflow from this leaf and all subleaves.