C# Class TriangleNet.Tools.QuadTree

A Quadtree implementation optimised for triangles.
Show file Open project: filipkunc/GLGraphics Class Usage Examples

Public Methods

Method Description
QuadTree ( Mesh mesh, int maxDepth, int sizeBound ) : System.Collections.Generic

Initializes a new instance of the QuadTree class.

The quadtree does not track changes of the mesh. If a mesh is refined or changed in any other way, a new quadtree has to be built to make the point location work. A node of the tree will be split, if its level if less than the max depth parameter AND the number of triangles in the node is greater than the size bound.

Query ( double x, double y ) : ITriangle

Private Methods

Method Description
DotProduct ( Point p, Point q ) : double
IsPointInTriangle ( Point p, Point t0, Point t1, Point t2 ) : bool

Test, if a given point lies inside a triangle.

Method Details

QuadTree() public method

Initializes a new instance of the QuadTree class.
The quadtree does not track changes of the mesh. If a mesh is refined or changed in any other way, a new quadtree has to be built to make the point location work. A node of the tree will be split, if its level if less than the max depth parameter AND the number of triangles in the node is greater than the size bound.
public QuadTree ( Mesh mesh, int maxDepth, int sizeBound ) : System.Collections.Generic
mesh Mesh Mesh containing triangles.
maxDepth int The maximum depth of the tree.
sizeBound int The maximum number of triangles contained in a leaf.
return System.Collections.Generic

Query() public method

public Query ( double x, double y ) : ITriangle
x double
y double
return ITriangle