RenderEngineContext

<< Click to Display Table of Contents >>

Navigation:  »No topics above this level«

RenderEngineContext

Return to chapter overview

C++ C++ Java Java .NET .NET

Summary

 

This class that abstracts a render engine and created by the ServerContext createRenderEngine() method. Generally, if you simply wish to interact with a volume in a window on the screen, it will be much more desirable to use a RenderQueue to handle this type of interaction. This object is lower level and acts as more of a frame grabber. You can set rendering parameters and request frames. No attention is paid to network latency or bandwidth.

 

"No attention is paid to network latency or bandwidth" --> what does this mean?  If the customer is already using the client-server API, why would this ever be used?

 

IRenderEngineContext::GetCurvedReformatEx()

C++

virtual signed int IRenderEngineContext::GetCurvedReformat ( IVolumeDataContext **  ppData,
const h_uint32  numProjectionPlanesPerSlice,
const h_uint32  numSlices,
const h_uint32  ppWidth,
const h_uint32  ppHeight,
const h_uint32  measurementSlice,
const h_float32  Zoom,
MATRIX44D **  arrProjPlanes,
const ENUM_CURVED_MPR_TYPE  type 
) [pure virtual]

Creates a new volume from several curved MPR specifications. This function may be used to reformat a volume so that a curved render may have depth as well. The resultant volume may then be rendered in any available rendering mode. Viewing the volume axially will give the view you would get from SetCurvedMPRPAth(). See SetCurvedMPRPAth() for more information on how the arrProjPlanes matrices should be specified.

Parameters:
ppDataThe address of an IVolumeDataContext pointer that will receive the newly created volume data.
numProjectionPlanesPerSliceThe number of positions that make up the curve for each slice.
numSlicesThe number of slices
ppWidthOutput volume width
ppHeightOutput volume height
measurementSliceThis is the index (0-based) of the slice to specify for accurate measurement. For example, if you specify 3 the fourth image in the volume will have the property that pixels in the X and Y directions will be accurately represented in millimeters.
ZoomThe number of pixels per voxel in the non-curved dimension. If this is -1, the pixels per voxel is calculated based upon the length of the curve.
arrProjPlanesThe projecton plane positions for each slice. The dimensions are arrProjPlanes[slice][curvePoint].
typeWhich axis is going to be non-linear on every slice?

 

com.fovia.hdrc.hdrcRenderEngineContext.getCurvedReformatEx()

Java/.NET

hdrcVolumeDataContext com.fovia.hdrc.hdrcRenderEngineContext.getCurvedReformat ( int  numProjPlanesPerSlice,
int  numSlices,
int  ppWidth,
int  ppHeight,
int  measurementSlice,
float  Zoom,
MATRIX44D  arrProjPlanes[][],
int  type 
) throws IOException

Creates a new volume from several curved MPR specifications. This function may be used to reformat a volume so that a curved render may have depth as well. The resultant volume may then be rendered in any available rendering mode. Viewing the volume axially will give the view you would get from setCurvedMPRPAth(). See setCurvedMPRPAth() for more information on how the arrProjPlanes matrices should be specified.

Parameters
numProjPlanesPerSliceThe number of positions that make up the curve for each slice.
numSlicesThe number of slices
ppWidthOutput volume width
ppHeightOutput volume height
measurementSliceThis is the index (0-based) of the slice to specify for accurate measurement. For example, if you specify 3 the fourth image in the volume will have the property that pixels in the X and Y directions will be accurately represented in millimeters.
ZoomThe number of pixels per voxel in the non-curved dimension. If this is -1, the pixels per voxel is calculated based upon the length of the curve.
arrProjPlanesThe projecton plane positions for each slice. The dimensions are arrProjPlanes[slice][curvePoint].
typeWhich axis is going to be non-linear on every slice?
Returns
The resultant volume data.
Exceptions
IOException

References com.fovia.hdrc.hdrcRenderEngineContext.getCurvedReformatEx().

 

IRenderEngineContext::RenderFinal()

C++

virtual signed int IRenderEngineContext::RenderFinal ( )
pure virtual

Not used by this object. Returns E_NOTIMPL.

Implements IRenderParamsReceiver.

 

com.fovia.hdrc.hdrcRenderEngineContext.renderFinal()

Java/.NET

int com.fovia.hdrc.hdrcRenderEngineContext.renderFinal ( ) throws IOException

 

IRenderEngineContext::RenderStreamed()

C++

virtual signed int IRenderEngineContext::RenderStreamed ( VOLVISIMAGE pPrevImage,
RENDER_PARAMS pNextImageParams,
VOLVISIMAGE pNextImage 
)
pure virtual

Performs a streamed render that performs up to three function calls at once on the server. They are listed below in the order they are called:

  • Wait for render to complete - If pPrevImage is not NULL, the previously rendered image is returned here.
  • Set render params - If pNextImageParams is not NULL, the params are set on the server.
  • Start rendering next frame - If pNextImage is not NULL, the next image is started rendering.

Generally, this a streaming session starts with a RenderStreamed(NULL,rp,imgRequest) call, sustained by RenderStreamed(imgResponse,rp,imgRequest) calls then completed with a RenderStreamed(imgResponse,NULL,NULL) call.

 

com.fovia.hdrc.hdrcRenderEngineContext.renderStreamed()

Java/.NET

int com.fovia.hdrc.hdrcRenderEngineContext.renderStreamed ( VOLVISIMAGE  prevImage,
RENDER_PARAMS  nextImageParams,
VOLVISIMAGE  nextImage 
) throws IOException

 

IRenderEngineContext::SetVoumeData()

C++

virtual signed int IRenderEngineContext::SetVolumeData ( IVolumeDataContext pData,
IOctreeContext pOctree 
)
pure virtual

Sets the volume data for this engine. Either parameter may be null. This is important because MPR engines do not require an Octree

Parameters
pDataThe volume data.
pOctreeAn initialized octree for the previously specified volume data.

 

hdrcRenderEngineContext..setVolumeData()

Java/.NET

int com.fovia.hdrc.hdrcRenderEngineContext.setVolumeData ( hdrcVolumeDataContext  Volume,
hdrcOctreeContext  Octree 
) throws IOException

Sets the volume data for this engine. Either parameter may be null. This is important because MPR engines do not require an Octree

Parameters
VolumeThe volume data.
OctreeAn initialized octree for the previously specified volume data.
Returns
int - 0 if successful.
Exceptions
IOException

 

 

IRenderEngineContext::SetRenderParams()

C++

virtual signed int IRenderEngineContext::SetRenderParams ( RENDER_PARAMS pRP)
pure virtual

Sets the RENDER_PARAMS for this engine.

Parameters
pRPThe params to set.

Implements IRenderParamsReceiver.

virtual signed int IRenderEngineContext::SetRenderParamsEx2 ( RENDER_PARAMS pRP,
const h_uint32  numVertexCallLists,
IVertexCallListContext **  arrVertices 
) [pure virtual]

Identical to SetRenderParams(), but with two additional parameters.

Parameters:
pRPThe params to set.
numVertexCallListsThe number of vertex call lists in arrVertices. If 0, arrVertices is ignored. However, if you wish to set 0 call lists to the engine so no polygons are rendered, set this parameter to 0xFFFFFFFF.
arrVerticesAn array of interface points to vertex call lists describing polygon objects to put into images rendered by this engine.

Implements IRenderParamsReceiver.

 

hdrcRenderEngineContext..setRenderParams()

Java/.NET

int com.fovia.hdrc.hdrcRenderEngineContext.setRenderParams ( RENDER_PARAMS  rp,
POLYGON_PARAMS  pp 
) throws IOException

Sets the RENDER_PARAMS and hdrcVertexCallListContext objects for this engine.

Parameters
rpThe RENDER_PARAMS to be set.
ppA POLYGON_PARAMS structure designating the polygon objects to be applied to this engine.
Returns
int - 0 if successful.
Exceptions
IOException

Implements com.fovia.hdrc.hdrcIRenderParamsReceiver.

References com.fovia.hdrc.hdrcRenderEngineContext.setRenderParams().

 

do we list all variants of setRenderParams() ?  The Java one isn't even the correct flavor, Doxygen must be updated.

 

IRenderEngineContext::Render()

C++

virtual signed int IRenderEngineContext::Render ( VOLVISIMAGE pImReq,
VOLVISIMAGE pImRes 
)
pure virtual

Renders the requested image requirements into the result image structure.

Parameters
pImReqRequested image requirements. Generally, VOLVISIMAGE::Stage is the only relevant parameter here.
pImResResult image structure.

 

hdrcRenderEngineContext..render()

Java/.NET

int com.fovia.hdrc.hdrcRenderEngineContext.setRenderParams ( RENDER_PARAMS  rp,
POLYGON_PARAMS  pp 
) throws IOException

Sets the RENDER_PARAMS and hdrcVertexCallListContext objects for this engine.

Parameters
rpThe RENDER_PARAMS to be set.
ppA POLYGON_PARAMS structure designating the polygon objects to be applied to this engine.
Returns
int - 0 if successful.
Exceptions
IOException

Implements com.fovia.hdrc.hdrcIRenderParamsReceiver.

References com.fovia.hdrc.hdrcRenderEngineContext.setRenderParams().

 

do we list all variants of setRenderParams() ?  The Java one isn't even the correct flavor, Doxygen must be updated.

 

 

IRenderEngineContext::RenderStreamed()

C++

virtual signed int IRenderEngineContext::RenderStreamed ( VOLVISIMAGE pPrevImage,
RENDER_PARAMS pNextImageParams,
VOLVISIMAGE pNextImage 
)
pure virtual

Performs a streamed render that performs up to three function calls at once on the server. They are listed below in the order they are called:

  • Wait for render to complete - If pPrevImage is not NULL, the previously rendered image is returned here.
  • Set render params - If pNextImageParams is not NULL, the params are set on the server.
  • Start rendering next frame - If pNextImage is not NULL, the next image is started rendering.

Generally, this a streaming session starts with a RenderStreamed(NULL,rp,imgRequest) call, sustained by RenderStreamed(imgResponse,rp,imgRequest) calls then completed with a RenderStreamed(imgResponse,NULL,NULL) call.

 

hdrcRenderEngineContext..renderStreamed()

Java/.NET

#MERGE Merge/hdvr_java_xxxx.html

missing Doxygen link

 

IRenderEngineContext::ReleaseSessionResources()

C++

virtual signed int IRenderEngineContext::ReleaseSessionResources ( )
pure virtual

Call this function if you wish to free server resources before disconnecting.

 

hdrcRenderEngineContext..releaseSessionResources()

Java/.NET

long com.fovia.hdrc.hdrcOctreeContext.releaseSessionResources ( ) throws IOException

Call this if you wish to free up this object on the server before disconnecting.

Returns
long - 0 if successful.
Exceptions
IOException

 

IRenderEngineContext::DecRef()

C++

virtual signed int IRenderEngineContext::DecRef ( )
pure virtual

Decreases the reference count on this object by 1. If the reference count reaches 0, the object is deallocated.

Implements IRoot.

 

Doxygen Links

 

Complete details of member variables and class names are available in the source level documentation available from these links to Doxygen.

 

C++

IRenderEngineContext

Java / .NET

hdrcRenderEngineContext