Show / Hide Table of Contents

Class PointCloudDataHandlerBase<TGpuData>

Manages the caching and loading of point and mesh data.

Inheritance
System.Object
PointCloudDataHandlerBase<TGpuData>
PointCloudDataHandler<TGpuData, TPoint>
Inherited Members
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.ToString()
Namespace: Fusee.PointCloud.Common
Assembly: Fusee.PointCloud.Common.dll
Syntax
public abstract class PointCloudDataHandlerBase<TGpuData>
Type Parameters
Name Description
TGpuData

Fields

DisposeQueue

Contains meshes that are marked for disposal.

Declaration
protected Dictionary<OctantId, IEnumerable<TGpuData>> DisposeQueue
Field Value
Type Description
System.Collections.Generic.Dictionary<OctantId, System.Collections.Generic.IEnumerable<TGpuData>>

DisposeRate

Used to manage gpu pressure when disposing of a large quantity of meshes.

Declaration
public float DisposeRate
Field Value
Type Description
System.Single

LoadingQueue

Contains nodes that are queued for loading in the background.

Declaration
protected List<OctantId> LoadingQueue
Field Value
Type Description
System.Collections.Generic.List<OctantId>

LockDisposeQueue

Locking object for the dispose queue.

Declaration
protected static object LockDisposeQueue
Field Value
Type Description
System.Object

LockLoadingQueue

Locking object for the loading queue.

Declaration
protected static object LockLoadingQueue
Field Value
Type Description
System.Object

MaxNumberOfNodesToLoad

Number of nodes that will be loaded, starting with the one with the biggest screen projected size to ensure no octant is loaded that will be invisible in a few frames. Load the five biggest nodes (screen projected size) as proposed in Schütz' thesis.

Declaration
protected int MaxNumberOfNodesToLoad
Field Value
Type Description
System.Int32

Methods

GetGpuData(OctantId)

First looks in the mesh cache, if there are meshes return, else look in the DisposeQueue, if there are meshes return, else look in the point cache, if there are points create a mesh and add to the MeshCache.

Declaration
public abstract IEnumerable<TGpuData> GetGpuData(OctantId guid)
Parameters
Type Name Description
OctantId guid

The unique id of an octant.

Returns
Type Description
System.Collections.Generic.IEnumerable<TGpuData>

ProcessDisposeQueue()

Disposes of unused meshes, if needed. Depends on the dispose rate and the expiration frequency of the MeshCache.

Declaration
public abstract void ProcessDisposeQueue()

TriggerPointLoading(OctantId)

Loads points from the hard drive if they are neither in the loading queue nor in the PointCahce.

Declaration
public abstract void TriggerPointLoading(OctantId guid)
Parameters
Type Name Description
OctantId guid

The octant for which the points should be loaded.

Generated by DocFX
GitHub Repo
Back to top