SoLDMTileVisitor Class Reference
[Kernel]

Large Data Management Tile Visitor More...

#include <LDM/SoLDMTileVisitor.h>

Inheritance diagram for SoLDMTileVisitor:
SoLDMLargeDataManagement SoLDMProximityVisitor

List of all members.

Classes

struct  NodeStatus
 Information structure for the tile to evaluate. More...

Public Member Functions

 SoLDMTileVisitor ()
 ~SoLDMTileVisitor ()
virtual float getTileWeight (SoLDMTileID tileID, NodeStatus &status)
bool isCulled (const SbBox3f &tileBox, float &distToScreenCenter, int cullbits=7)
virtual float getCullWeight (float distToScreen)
virtual float getScreenResCullWeight (float voxelsize)
virtual float getSurfaceGeomWeight (float distToGeom, float geometryPriority)
virtual float getVolumeGeomWeight (float distToGeom, float geometryPriority)
virtual float getROIWeight (int distToROI, float geometryPriority)
virtual float combineParentWeight (float parentWeight, float weight)
virtual void reset ()
const SbMatrixgetMVPMatrixPtr ()
void valuationChangeNotify ()

Detailed Description

Large Data Management Tile Visitor

This class is only needed for advanced users who intend to extend or replace internal LDM algorithms.

NOTE: This class does not exist in Open Inventor 10.0 and later.

The SoLDMTileVisitor allows the user to define a strategy to evaluate what part of the data set is the most important based on viewpoint and geometries. It is responsible for assessing the importance of tiles. This information is used by the node front manager (SoLDMNodeFrontManager) as a predictor to optimally fill the texture memory. When the node front manager evaluates texture node front, it asks the SoLDMTileVisitor for the weight of each tile by calling the getTileWeight function. The SoLDMTileVisitor queries the SoLDMTileManager to find out if the tile is present in main memory. If not, a null weight is returned to ensure the data of all requested textures are in main memory. The SoLDMTileVisitor also queries the SoLDMGeometry node to access geometric information related to the zone of the tile to be weighted.

SEE ALSO

SoLDMNodeFrontManager, SoLDMTileManager, SoLDMGeometry, SoLDMResourceManager

Deprecated:

Deprecated since Open Inventor 9700
LDM Tile Visitor is no longer used.

Constructor & Destructor Documentation

SoLDMTileVisitor::SoLDMTileVisitor (  ) 

Constructor.

SoLDMTileVisitor::~SoLDMTileVisitor (  ) 

Destructor.


Member Function Documentation

virtual float SoLDMTileVisitor::combineParentWeight ( float  parentWeight,
float  weight 
) [virtual]

This function combines the current tile weight with its parent.

The returned weight must be less than parentWeight. Default multiplies weights.

virtual float SoLDMTileVisitor::getCullWeight ( float  distToScreen  )  [virtual]

Assigns a weight based on distance to the center of the screen.

May be overridden by the application. distToScreen is the signed distance from the tile considered to the center of the screen in normalized screen coordinate. This functions is called only if the tile is culled. The returned weight must be between 0 and 1. Default returns 0 always.

Reimplemented in SoLDMProximityVisitor.

const SbMatrix* SoLDMTileVisitor::getMVPMatrixPtr (  )  [inline]

Returns the model view projection matrix to assign a weight based on the viewpoint.

virtual float SoLDMTileVisitor::getROIWeight ( int  distToROI,
float  geometryPriority 
) [virtual]

Assigns a weight based on distance to ROI.

May be overridden by the application. distToROI is the signed distance from the geometry ROI to a tile in data coordinates. < 0 means the tile is outside the ROI. > 0 means the tile is inside the ROI. = 0 means the tile intersects the ROI. The geometryPriority argument is the weight of the geometry considered. The returned weight must be between 0 and 1. Default returns 1 if the distance is >= 0, else 0.

Reimplemented in SoLDMProximityVisitor.

virtual float SoLDMTileVisitor::getScreenResCullWeight ( float  voxelsize  )  [virtual]

Assigns a weight based on voxel size in pixel.

May be overridden by the application. voxelsize parameter is the size of the biggest voxel dimension for a given tile in pixel. The returned weight must be between 0 and 1. Called only if screen resolution culling is enabled (see SoVolumeRendering, true by default).

virtual float SoLDMTileVisitor::getSurfaceGeomWeight ( float  distToGeom,
float  geometryPriority 
) [virtual]

Assigns a weight based on distance to a surface geometry.

May be overridden by the application. distToGeom is the signed distance from the surface to the considered tile in data coordinates. < 0 means the tile is behind or outside the geometry. > 0 means the tile is in front of or inside the geometry. = 0 means the tile intersects the geometry. (the normal of a geometry plane is oriented towards increasing data (from voxel 0 to 1)) The geometryPriority argument is the weight of the geometry considered. The returned weight must be between 0 and 1. Default returns geometryPriority if the distance is null, else 0.

Reimplemented in SoLDMProximityVisitor.

virtual float SoLDMTileVisitor::getTileWeight ( SoLDMTileID  tileID,
NodeStatus status 
) [virtual]

Method in charge of evaluating the weight of the tile tileID according to the SoLDMGeometry node.

The returned value is the weight assigned to the tile. This default method may be overridden.

virtual float SoLDMTileVisitor::getVolumeGeomWeight ( float  distToGeom,
float  geometryPriority 
) [virtual]

Assigns a weight based on distance to a data set geometry.

May be overridden by the application. distToGeom is the signed distance from the data set to the considered tile in data coordinates. < 0 means the tile is outside the data set. > 0 means the tile is inside the data set. = 0 means the tile intersects the data set. (the normal of a geometry plane is oriented towards increasing data (from voxel 0 to 1)) The geometryPriority argument is the weight of the geometry considered. The returned weight must be between 0 and 1. Default returns geometryPriority if the distance is null, else 0.

Reimplemented in SoLDMProximityVisitor.

bool SoLDMTileVisitor::isCulled ( const SbBox3f tileBox,
float &  distToScreenCenter,
int  cullbits = 7 
)

TODO: doc with graph (default behavior graph).

Is the tile culled. Takes effect only if SoVolumeRendering::m_viewCulling is TRUE. Returns distance to screen center in screen coordinates if the tile is culled.

virtual void SoLDMTileVisitor::reset (  )  [virtual]

Reset notification (the data has changed).

Reimplemented from SoLDMLargeDataManagement.

void SoLDMTileVisitor::valuationChangeNotify (  ) 

Notify of a change of evaluator (change visitor type).


The documentation for this class was generated from the following file:

Open Inventor Toolkit reference manual, generated on 12 Feb 2024
Copyright © Thermo Fisher Scientific All rights reserved.
http://www.openinventor.com/