SoLDMNodeFrontManager Class |
LDM Node Front Manager abstract base class.
Namespace: OIV.LDM
The SoLDMNodeFrontManager type exposes the following members.
Name | Description | |
---|---|---|
![]() | Equals | (Inherited from Object.) |
![]() | GeomChangeNotify | Calls GeomChangeNotify(false). |
![]() | GeomChangeNotify(Boolean) | Notifies SoLDMNodeFrontManager that it's necessary to re-evaluate the data structure due to geometry or property changes. |
![]() | GetDataTileID | Given a tileID, returns the tileID whose data will be used for the input tileID. |
![]() | GetFileID | Returns the file ID corresponding to the specified tile ID (ID of the tile in the file). |
![]() | GetHashCode |
Overrides GetHashCode().
(Inherited from SoNetBase.) |
![]() | GetMaxTileIDAtResolution | return the maximum tileID at a given depth. |
![]() | GetMinResolution | Returns how many different subsample levels of the data set the data stores. |
![]() | GetNextLoadedStepLevel | Return the level of the next time step. |
![]() | GetNextShape2dTexFront(SoLdmShape, ListSoLDMTileID, ListSoLDMTileID) | Same as getNextTexFront but for 2d shapes. |
![]() | GetNextShape2dTexFront(SoLdmShape, Queue, Queue) | Obsolete. Same as getNextTexFront but for 2d shapes. |
![]() | GetNextSkinTexFront(Queue, Queue, Queue) | Obsolete. Same as getNextTexFront but for skin geometry. |
![]() | GetNextSkinTexFront(ListSoLDMTileID, ListSoLDMTileID, ListSbBox3i32) | Same as getNextTexFront but for skin geometry. |
![]() | GetNextSliceTexFront(Int32, ListSoLDMTileID, ListSoLDMTileID) | Returns the next set of 2D tiles to load and unload for slice texturing of slice sliceID. |
![]() | GetNextSliceTexFront(Int32, Queue, Queue) | Obsolete. Returns the next set of 2D tiles to load and unload for slice texturing of slice sliceID. |
![]() | GetNextTexFront(Queue, Queue) | Obsolete. Calls GetNextTexFront(toLoad, toUnload, System.Int32(0)). |
![]() | GetNextTexFront(ListSoLDMTileID, ListSoLDMTileID) | Calls GetNextTexFront(toLoad, toUnload, System.Int32(0)). |
![]() | GetNextTexFront(Queue, Queue, Int32) | Obsolete. Returns the list of tiles to unload from texture memory and the list of tiles to load into texture memory. |
![]() | GetNextTexFront(ListSoLDMTileID, ListSoLDMTileID, Int32) | Returns the list of tiles to unload from texture memory and the list of tiles to load into texture memory. |
![]() | GetNumFileIDs | Returns the total number of file IDs used ( < getNumTileIDs() ). |
![]() | GetNumTileIDs |
Returns the total number of tile IDs used.
|
![]() | GetOrderedDataFront(SbVec3i32, ListSoLDMTileID) | Returns the data front tiles sorted according to distance from the viewpoint in data coordinates. |
![]() | GetOrderedDataFront(SbVec3i32, Queue) | Obsolete. Returns the data front tiles sorted according to distance from the viewpoint in data coordinates. |
![]() | GetOrderedShape2dTexFront(SoLdmShape, SbVec3i32, ListSoLDMTileID) | Same as getOrderedTexFront but for 2d shapes slice geometry. |
![]() | GetOrderedShape2dTexFront(SoLdmShape, SbVec3i32, Queue) | Obsolete. Same as getOrderedTexFront but for 2d shapes slice geometry. |
![]() | GetOrderedSkinTexFront(SbVec3i32, ListSoLDMTileID) | Same as getOrderedTexFront but for skin geometry. |
![]() | GetOrderedSkinTexFront(SbVec3i32, Queue) | Obsolete. Same as getOrderedTexFront but for skin geometry. |
![]() | GetOrderedTexFront(SbVec3i32, ListSoLDMTileID) | Returns the texture front tiles sorted according to distance from the viewpoint in data coordinates. |
![]() | GetOrderedTexFront(SbVec3i32, Queue) | Obsolete. Returns the texture front tiles sorted according to distance from the viewpoint in data coordinates. |
![]() | GetShape2dTexTileID | Same thing as getTexTileID but for a 2d shape. |
![]() | GetTexFront(Queue, Queue) | Obsolete. Returns the list of tiles unloaded from texture memory and the list of tiles loaded into texture memory by a previous getNextTexFront. |
![]() | GetTexFront(ListSoLDMTileID, ListSoLDMTileID) | Returns the list of tiles unloaded from texture memory and the list of tiles loaded into texture memory by a previous getNextTexFront. |
![]() | GetTexTileID | Given a tileID, returns the tileID whose texture will be used for the input tileID. |
![]() | GetTileID(SbVec3i32) | Calls GetTileID(cellPos, System.Int32(0)). |
![]() | GetTileID(SbVec3i32, Int32) | Given the position of a cell (i,j,k) and the resolution, returns the tile ID of the corresponding tile. |
![]() | GetTileLevel | return the depth of the given tileID. |
![]() | GetTilePos | Returns the tile position in data coordinates of the specified tile ID. |
![]() | GetTiles(SbBox3i32, ListSoLDMTileID) | Returns the list of tiles intersecting the specified region. |
![]() | GetTiles(SbBox3i32, Queue) | Obsolete. Returns the list of tiles intersecting the specified region. |
![]() | GetTiles(SbBox3i32, Int32, ListSoLDMTileID) | Given a resolution, returns the list of tiles intersecting the specified region. |
![]() | GetTiles(SbBox3i32, Int32, Queue) | Obsolete. Given a resolution, returns the list of tiles intersecting the specified region. |
![]() | GetType | Gets the Type of the current instance. (Inherited from Object.) |
![]() | GetWeight | Utility function to get a tile's weight. |
![]() | IsSliceTexFrontEmpty | Indicates if there is no texture to be loaded yet because nothing is in main memory. |
![]() | IsTextureFrontEmpty | Indicates if there is no texture to be loaded yet because nothing is in main memory. |
![]() | MovingChangeNotify | Notifies SoLDMNodeFrontManager if the user is interacting with the scene or not. |
![]() | RegisterSlice | This function must be called by a slice to notify the nodeFrontManager that a new data structure must be maintained for it. |
![]() | Reset | The reset function is useful when using a customized LDM manager. |
![]() | Reset2dTexFronts | |
![]() | ResourceChangeNotify | Notifies SoLDMNodeFrontManager that texture resources have changed and the front needs to be recalculated. |
![]() | SetSliceMaxVisualResolution | Set the maximum display resolution of slice sliceID. |
![]() | SetSlicePlane | Tells SoLDMNodeFrontManager what plane the slice is in. |
![]() | ShouldInit | Indicates that the manager should be initialized. |
![]() | StartTraversalNotify | This function is called at the beginning of each traversal and can be used to initialize whatever variables are necessary for the SoLDMNodeFrontManager. |
![]() | ToString | Returns a string that represents the current object. (Inherited from Object.) |
![]() | UnRegisterSlice | Notifies SoLDMNodeFrontManager that the slice of ID sliceID is no longer valid. |
This class is only needed for advanced users who intend to extend or replace internal LDM algorithms.
<font color="#0000FF">NOTE:</font> This class does not exist in Open Inventor 10.0 and later.
The SoLDMNodeFrontManager is in charge of maintaining a data structure representing the multiresolution organization of the data stored on disk and the state of this data in main memory for a specific frame (tiles loaded in main memory and their importance and attributes for rendering).
The set of tiles of higher weights in this data structure represent the best available textures to fit in texture memory for the frame to render. This collection is the result of the data structure evaluation.
An evaluation of the structure is performed when LDM asks (getNextTexFront, getNextSliceTexFront, getOrderedDataFront) for an update of the texture node front and if the SoLDMNodeFrontManager was previously notified that something changed (geomChangeNotify, resourceChangeNotify, movingChangeNotify) e.g., some geometry has changed, some new tiles have been loaded, etc.
The SoLDMNodeFrontManager asks the SoLDMTileVisitor to compute the weight of each node. Based on these weights, decisions are made to either refine (load tiles of higher resolution) or collapse the multiresolution system (unload). The SoLDMNodeFrontManager works under constraints given by the SoLDMResourceManager (number of texture allowed in texture memory and texture load rate).
If the user does not interact with the model, the quality of the rendering will increase until it reaches an optimal state. The asynchronous loading process continues loading until the weight of the next tile to load is less than the weight of the next tile to unload meaning that the optimal collection of tiles is present in main memory and in texture memory.