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. |