Class OctantF<P>
Single-precision Octant implementation.
Inheritance
Inherited Members
Namespace: Fusee.Structures
Assembly: Fusee.Structures.dll
Syntax
public class OctantF<P> : IOctant<float3, float, P>, IBucket<float3, float>
Type Parameters
| Name | Description |
|---|---|
| P | The type of the octants payload. |
Constructors
OctantF()
Creates a new instance of type PtOctant.
Declaration
protected OctantF()
OctantF(float3, Single, IOctant<float3, Single, P>[])
Creates a new instance of type PtOctant.
Declaration
public OctantF(float3 center, float size, IOctant<float3, float, P>[] children = null)
Parameters
| Type | Name | Description |
|---|---|---|
| float3 | center | The center point of this octant, Center. |
| System.Single | size | The size of this octant, Size. |
| IOctant<float3, System.Single, P>[] | children | The children of this octant - can be null. |
Fields
Resolution
The Resolution of an Octant is defined by the minimum distance (spacing) between points. If the minimum distance between a point and its nearest neighbor is smaller then this distance, it will fall into a child octant.
Declaration
public double Resolution
Field Value
| Type | Description |
|---|---|
| System.Double |
Properties
Center
Center of this Bucket in world space coordinates.
Declaration
public float3 Center { get; set; }
Property Value
| Type | Description |
|---|---|
| float3 |
Children
Children of this Octant. Must contain eight or null (leaf node) children.
Declaration
public IOctant<float3, float, P>[] Children { get; set; }
Property Value
| Type | Description |
|---|---|
| IOctant<float3, System.Single, P>[] |
Guid
The globally unique identifier for this octant.
Declaration
public Guid Guid { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Guid |
IsLeaf
Is this octant a leaf node in the octree?
Declaration
public bool IsLeaf { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
Level
The level of the octree this octant belongs to.
Declaration
public int Level { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
Payload
The payload of this octant.
Declaration
public List<P> Payload { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Collections.Generic.List<P> |
PosInParent
Integer that defines this octants position in its parent.
Declaration
public int PosInParent { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
Size
Length, width and height of this Octant.
Declaration
public float Size { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Single |
Methods
CalcChildCenterAtPos(Int32)
Returns the center of the child octant at the given position of the parent octant.
Declaration
protected float3 CalcChildCenterAtPos(int posInParent)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | posInParent | The position in the parent octant. |
Returns
| Type | Description |
|---|---|
| float3 |
CalcChildCenterAtPos(Int32, Single, float3)
Returns the center of the child octant at the given position of the parent octant from the parents center and size.
Declaration
public static float3 CalcChildCenterAtPos(int posInParent, float parentSize, float3 parentCenter)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | posInParent | The position in the parent octant. |
| System.Single | parentSize | The size of the parent octant. |
| float3 | parentCenter | The center of the parent octant. |
Returns
| Type | Description |
|---|---|
| float3 |
CreateChild(Int32)
Creates a child octant at the given position in its parent octant.
Declaration
public virtual IOctant<float3, float, P> CreateChild(int posInParent)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | posInParent | The position in the parent octant. |
Returns
| Type | Description |
|---|---|
| IOctant<float3, System.Single, P> |
InsideOrIntersectingFrustum(FrustumF)
Checks if this Octant lies within or intersects a Frustum. Returns true if one of the Frustum planes is intersecting this octant.
Declaration
public bool InsideOrIntersectingFrustum(FrustumF frustum)
Parameters
| Type | Name | Description |
|---|---|---|
| FrustumF | frustum | The frustum to test against. |
Returns
| Type | Description |
|---|---|
| System.Boolean | false if fully outside, true if inside or intersecting. |
InsideOrIntersectingFrustumFast(FrustumF)
Checks if this Octant lies within or intersects a Frustum. Assumes that we do not need to process this octant if the near plane is completely inside it.
Declaration
public bool InsideOrIntersectingFrustumFast(FrustumF frustum)
Parameters
| Type | Name | Description |
|---|---|---|
| FrustumF | frustum | The frustum to test against. |
Returns
| Type | Description |
|---|---|
| System.Boolean | false if fully outside, true if inside or intersecting. |
InsideOrIntersectingPlane(PlaneF)
Checks if a viewing frustum lies within or intersects this Octant.
Declaration
public bool InsideOrIntersectingPlane(PlaneF plane)
Parameters
| Type | Name | Description |
|---|---|---|
| PlaneF | plane | The plane to test against. |
Returns
| Type | Description |
|---|---|
| System.Boolean | false if fully outside, true if inside or intersecting. |