Class PointCloudDataHandlerBase<TGpuData>
Manages the caching and loading of point and mesh data.
Inheritance
Inherited Members
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. |