Fovia's C++ Client/Server API
|
Public Member Functions | |
virtual signed int | ApplyVolumetricShadowMap (IVolumeShadowContext *pShadow)=0 |
virtual signed int | AskInterface (const BGUID *piid, IRoot **ppr)=0 |
virtual signed int | CheckChannel ()=0 |
virtual signed int | DecRef ()=0 |
virtual signed int | FastSwap (IVolumeDataContext *pData, IOctreeContext *pOctree)=0 |
virtual signed int | FindPath (VECTOR3D **arrPath, unsigned int *numPathSteps, VECTOR3D *pStart, VECTOR3D *pFinish, FIND_PATH_PARAMS *pParams, IAllocator *pAlloc)=0 |
virtual signed int | FinishJobFindPath (VECTOR3D **arrPath, unsigned int *numPathSteps, IAllocator *pAlloc, signed long long jobID)=0 |
virtual signed int | GetAdaptiveJPEGStatus (signed int *status)=0 |
virtual signed int | GetCurvedMPRPath (MATRIX44D **ppPath, unsigned int *pathLen)=0 |
virtual signed int | GetCurvedReformat (IVolumeDataContext **ppData, const unsigned int numProjectionPlanesPerSlice, const unsigned int numSlices, const unsigned int ppWidth, const unsigned int ppHeight, const unsigned int measurementSlice, const float Zoom, MATRIX44D **arrProjPlanes, const ENUM_CURVED_MPR_TYPE type)=0 |
virtual signed int | GetCurvedReformatEx (IVolumeDataContext **ppData, const signed int bCreateOctree, IOctreeContext **ppOctree, const ENUM_SMOOTH_PARAM octreeSmoothParam, const unsigned int numProjectionPlanesPerSlice, const unsigned int numSlices, const unsigned int ppWidth, const unsigned int ppHeight, const unsigned int measurementSlice, const float Zoom, MATRIX44D **arrProjPlanes, const ENUM_CURVED_MPR_TYPE type)=0 |
virtual signed int | GetFramesPerPhase (unsigned int *pFrames)=0 |
virtual signed int | GetID (signed long long *pID)=0 |
virtual signed int | GetImageAllocator (IAllocator **ppAlloc)=0 |
virtual signed int | GetMandibleTrace (VECTOR3D *left, VECTOR3D *right, VECTOR3D *front, unsigned int *numPoints, VECTOR3D *points, MATRIX44D *projectionPlane, float *zoom, double *slabThickness)=0 |
virtual signed int | GetOctreeContext (IOctreeContext **pOctree)=0 |
virtual signed int | GetPointVisibility (VECTOR3D *vtr, POINTVISIBLEINFO *pvi, const unsigned int Num)=0 |
virtual signed int | GetRenderEngineContext (IRenderEngineContext **ppContext)=0 |
virtual signed int | GetRenderParams (RENDER_PARAMS *pParams)=0 |
virtual signed int | GetRenderParamsCached (RENDER_PARAMS *pParams)=0 |
virtual signed int | GetRenderParamsEx (RENDER_PARAMS *pParams, const signed int bIncludeQueuedParams)=0 |
virtual signed int | GetServerContext (IServerContext **ppServer)=0 |
virtual signed int | GetTransferFunction (const unsigned int index, RENDER_RANGE_PARAMS *pParams)=0 |
virtual signed int | GetTransferFunctionCount (unsigned int *numTFs)=0 |
virtual signed int | GetVolumeDataContext (IVolumeDataContext **ppData)=0 |
virtual signed int | IncRef ()=0 |
virtual signed int | IsRenderingFinished ()=0 |
virtual signed int | ProjectPoint (VECTOR3D *vtx, POINT *pt, const unsigned int Num)=0 |
virtual signed int | ProjectVolumetricShadow ()=0 |
virtual signed int | ReleaseSessionResources ()=0 |
virtual signed int | Render (VOLVISIMAGE *pImReq, VOLVISIMAGE *pImRes)=0 |
virtual signed int | RenderFinal ()=0 |
virtual signed int | RenderFinalEx (const signed int bNotifyListeners)=0 |
virtual signed int | RenderFinalEx2 (const signed int bIgnoreParams, const ENUM_RENDER_PARAMS_MASK paramsToIgnore)=0 |
virtual signed int | RenderFinalEx3 (const signed int bNotifyListeners, const signed int bIgnoreParams, const ENUM_RENDER_PARAMS_MASK paramsToIgnore)=0 |
virtual signed int | RenderShadowLight ()=0 |
virtual signed int | RenderStreamed (VOLVISIMAGE *pPrevImage, RENDER_PARAMS *pNextImageParams, VOLVISIMAGE *pNextImage)=0 |
virtual signed int | RenderStreamedEx (VOLVISIMAGE *pPrevImage, RENDER_PARAMS *pNextImageParams, VOLVISIMAGE *pNextImage, const signed int bGetFinishedFrame)=0 |
virtual signed int | RenderStreamedEx2 (VOLVISIMAGE *pPrevImage, RENDER_PARAMS *pNextImageParams, const unsigned int numVertexCallLists, IVertexCallListContext **arrVertices, VOLVISIMAGE *pNextImage, const signed int bGetFinishedFrame)=0 |
virtual signed int | RenderStreamedEx3 (VOLVISIMAGE *pPrevImage, RENDER_PARAMS *pNextImageParams, const unsigned int numVertexCallLists, IVertexCallListContext **arrVertices, const int TFsToSet, RENDER_RANGE_PARAMS **rrps, VOLVISIMAGE *pNextImage, const signed int bGetFinishedFrame)=0 |
virtual signed int | RenderStreamedEx4 (VOLVISIMAGE *pPrevImage, RENDER_PARAMS *pNextImageParams, const unsigned int numVertexCallLists, IVertexCallListContext **arrVertices, signed long long *TFsToSet, RENDER_RANGE_PARAMS **rrps, VOLVISIMAGE *pNextImage, const signed int bGetFinishedFrame)=0 |
virtual signed int | RenderStreamedStereo (VOLVISIMAGE *pPrevImage, VOLVISIMAGE *pPrevImage2, RENDER_PARAMS *pNextImageParams, const unsigned int numVertexCallLists, IVertexCallListContext **arrVertices, signed long long *TFsToSet, RENDER_RANGE_PARAMS **rrps, VOLVISIMAGE *pNextImage, const signed int bGetFinishedFrame)=0 |
virtual signed int | SetAdaptiveJPEGParameters (ADAPTIVEJPEGPARAMS *params)=0 |
virtual signed int | SetAdaptiveJPEGStatus (signed int status)=0 |
virtual signed int | SetAutonavigating (const signed int bNavigating, const double speed)=0 |
virtual signed int | SetCurvedMPRPath (const unsigned int numProjPlanes, MATRIX44D *arrProjPlanes, const ENUM_CURVED_MPR_TYPE type)=0 |
virtual signed int | SetFastPolygonsEnabled (signed int bEnabled)=0 |
virtual signed int | SetFramesPerPhase (const unsigned int frames)=0 |
virtual signed int | SetImageAllocator (IAllocator *pAlloc)=0 |
virtual signed int | SetPhase (const unsigned int phase)=0 |
virtual signed int | SetPolygonCrossSectionLineParameters (double width, COLOR_RGBA color)=0 |
virtual signed int | SetRenderParams (RENDER_PARAMS *pRP)=0 |
virtual signed int | SetRenderParamsEx (RENDER_PARAMS *pRP, const signed int bNotifyLinked)=0 |
virtual signed int | SetRenderParamsEx2 (RENDER_PARAMS *pRP, const unsigned int numVertexCallLists, IVertexCallListContext **arrVertices)=0 |
virtual signed int | SetRenderParamsEx3 (RENDER_PARAMS *pRP, const unsigned int numVertexCallLists, IVertexCallListContext **arrVertices, const signed int bNotifyLinked)=0 |
virtual signed int | SetRenderParamsEx4 (RENDER_PARAMS *pRP, const unsigned int numVertexCallLists, IVertexCallListContext **arrVertices, const int TFsToSet, RENDER_RANGE_PARAMS **rrps)=0 |
virtual signed int | SetRenderParamsEx5 (RENDER_PARAMS *pRP, const unsigned int numVertexCallLists, IVertexCallListContext **arrVertices, signed long long *TFsToSet, RENDER_RANGE_PARAMS **rrps)=0 |
virtual signed int | SetRenderParamsRenderAndSendPrevFrame (const unsigned long long imgID, VOLVISIMAGE *imRes, RENDER_PARAMS *rp, VOLVISIMAGE *imReq)=0 |
virtual signed int | SetRenderParamsRenderAndSendPrevFrameEx (const unsigned long long imgID, VOLVISIMAGE *imRes, RENDER_PARAMS *rp, const unsigned int numVertexCallLists, IVertexCallListContext **arrVertices, VOLVISIMAGE *imReq)=0 |
virtual signed int | SetRenderParamsRenderAndSendPrevFrameEx2 (const unsigned long long imgID, VOLVISIMAGE *imRes, RENDER_PARAMS *rp, const unsigned int numVertexCallLists, IVertexCallListContext **arrVertices, const int TFsToSet, RENDER_RANGE_PARAMS **rrps, VOLVISIMAGE *imReq)=0 |
virtual signed int | SetRenderParamsRenderAndSendPrevFrameEx3 (const unsigned long long imgID, VOLVISIMAGE *imRes, RENDER_PARAMS *rp, const unsigned int numVertexCallLists, IVertexCallListContext **arrVertices, signed long long *TFsToSet, RENDER_RANGE_PARAMS **rrps, VOLVISIMAGE *imReq)=0 |
virtual signed int | SetRenderParamsRenderRead (RENDER_PARAMS *rp, VOLVISIMAGE *imReq, VOLVISIMAGE *imRes)=0 |
virtual signed int | SetRenderParamsRenderReadStereo (RENDER_PARAMS *rp, VOLVISIMAGE *imReq, VOLVISIMAGE *imRes, VOLVISIMAGE *imRes2)=0 |
virtual signed int | SetSegmentationBoundaries (unsigned long long *masks)=0 |
virtual signed int | SetTransferFunction (const unsigned int index, RENDER_RANGE_PARAMS *arrParams)=0 |
virtual signed int | SetVertexColorMapTransferFunction (RENDER_RANGE_PARAMS *rrp)=0 |
virtual signed int | SetViewMode (const ENUM_VIEW_MODE mode)=0 |
virtual signed int | SetVolumeData (IVolumeDataContext *pData, IOctreeContext *pOctree)=0 |
virtual signed int | SetVolumeData4D (IVolumeDataContext **arrData, IOctreeContext **arrOctrees, const unsigned int numVolumes)=0 |
virtual signed int | ShootRay (POINT *pt, RAYSTOPINFO *rsi, const unsigned int Num)=0 |
virtual signed int | ShootRayEx (POINT *pt, VECTOR3D *start, VECTOR3D *direction, double percent, RAYSTOPINFO *rsi, signed int Num)=0 |
virtual signed int | ShootRayFast (POINT *pt, RAYSTOPINFO *rsi, const unsigned int Num)=0 |
virtual signed int | ShootRayGetWall (POINT *pt, RAYWALLINFO *rsi, const unsigned int Num)=0 |
virtual signed int | StartJobFindPath (signed long long *jobID, VECTOR3D *pStart, VECTOR3D *pFinish, FIND_PATH_PARAMS *pParams)=0 |
virtual signed int | WaitForPrevRender (unsigned long long *imgID)=0 |
![]() | |
template<class T > | |
signed int | AskInterface (T **pp) |
Class that abstracts a render engine. Generally, if you simply wish to interact with a volume in a window on the screen, it will be much more desireable to use an IRenderQueue to handle this type of interation. 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.
This object is created by IServerContext::CreateRenderEngine().
|
pure virtual |
|
pure virtual |
Does a simple test of the network channel to "ping" the server.
|
pure virtual |
Decreases the reference count on this object by 1. If the reference count reaches 0, the object is deallocated.
Implements IRoot.
|
pure virtual |
Performs a server side request to swap from one volume to another quickly. The new volume must have the same dimensions, spacing, orientation, and skew.
pData | The new dataset to apply. |
pOctree | The octree associated with pData to apply. This can be NULL, but only RT_THIN_* rendering modes will work if that is the case. |
|
pure virtual |
Attempts to find a path between two points in the volume using either static or dynamic upper and lower thresholds for determining the pathway.
arrPath | If the operation succeeded, this will get the address of a buffer containing the result of the path find operation. The buffer will be allocated using pAlloc. If the operation failed, this parameter is untouched. |
numPathSteps | The address of an integer that will get the number of elements in the resultant path buffer arrPath. |
pStart | The start point for the path finding routine. Must be non-NULL. |
pFinish | The finish point for the path finding routine. Must be non-NULL. |
pParams | The parameters for the path finding routine. If NULL, the values set in the default constructor for FIND_PATH_PARAMS are used. See the FIND_PATH_PARAMS description for details on each of the parameters. |
pAlloc | The allocator to use when allocating the resultant path arrPath. Must be non-NULL. |
|
pure virtual |
Placeholder for ()
|
pure virtual |
Gets the status of adaptive JPEG quality for interactive rendering.
|
pure virtual |
Returns the current curved MPR path into the variable at address ppPath and the number of MATRIX44Ds in the path into the variable at address pathLen.
ppPath | The address of the variable to receive the array of curved MPR positions. This is a shallow pointer. Do not deallocate this buffer. |
pathLen | The address of the variable to receive the number of MATRIX44Ds in the curved path. |
|
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.
ppData | The address of an IVolumeDataContext pointer that will receive the newly created volume data. |
numProjectionPlanesPerSlice | The number of positions that make up the curve for each slice. |
numSlices | The number of slices |
ppWidth | Output volume width |
ppHeight | Output volume height |
measurementSlice | This 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. |
Zoom | The 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. |
arrProjPlanes | The projecton plane positions for each slice. The dimensions are arrProjPlanes[slice][curvePoint]. |
type | Which axis is going to be non-linear on every slice? |
|
pure virtual |
This will not go through the queuing process. You MUST make sure you're actually in curved MPR mode before calling this function. To ensure this, call WaitForParamsToBeSet() after setting the render type.
pData | The address of the IVolumeDataContext pointer that will get the location of the newly created volume. |
bCreateOctree | If H_TRUE this function will create an ocrtree for the IVolumeDataContext object pointed to by pData. If H_FALSE, no octree will be created. |
ppOctree | The address of an IOctreeContext pointer that will recieve the created octree if bCreateOctree is set to H_TRUE. |
octreeSmoothParam | A value from the ENUM_SMOOTH_PARAM enumeration to set the smothing mode, if any, to be applied to the created octree. This is only relavent if bCreateOctree is set to H_TRUE. |
numProjPlanesPerSlice | int |
numSlices | int |
ppWidth | int |
ppHeight | int |
measurementSlice | The index of the slice that can be used for accurate measurement. For accurate measurement on other slices, it is up to the user to understand the relationship between the input data and the output volume. |
Zoom | float |
arrProjPlanes | MATRIX44D** |
type | int |
|
pure virtual |
Returns the number of frames per phase set on this engine. In 4D rendering, it is possible to tell the engine to automatically advance to the next phase of the 4D dataset after a certain number of frames have been rendered. 0 means the phase will not be advanced. See SetFramesPerPhase().
pFrames | The address of the variable to get the current number of frames per phase. |
|
pure virtual |
Integer that represents the server side object that contains the volume data.
|
pure virtual |
Returns the image allocator that will be used for allocating images as they come in from the server. By default, this is the allocator returned by ILibrary::GetAllocator() with the id parameter HCAP_IMAGE.
|
pure virtual |
Gets the octree context associated with this render engine.
pOctree | The address of the variable to receive the pointer to the octree interface used by this engine. |
|
pure virtual |
Project 3D coordinates (in patient system coordinates) onto the rendering plane. Output points are relative to the center of the rendering plane, with X axis increasing along the raster, Y axis increasing along rows. Additionally, the opacity of the specified point and the color accumulated while traversing from the point to the screen is returned..
vtr | List of points to get visibility info. |
pvi | List of POINTVISIBLEINFO objects to receive the visibility info. |
Num | Number of points to transform. |
|
pure virtual |
Implementation of the IRenderParamsReceiver function. For this interface it is redundant and this interface is returned.
ppContext | The address of the variable to get the interface pointer for this object. |
Implements IRenderParamsReceiver.
|
pure virtual |
Returns the current RENDER_PARAMS for this engine.
pParams | The address of a RENDER_PARAMS structure to get the current state of this engine. |
Implements IRenderParamsReceiver.
|
pure virtual |
Not used by this object. Returns E_NOTIMPL.
Implements IRenderParamsReceiver.
|
pure virtual |
Returns the current RENDER_PARAMS for this engine. Functionally identical to GetRenderParams on this object.
pParams | The address of a RENDER_PARAMS structure to get the current state of this engine. |
bIncludeQueuedParams | Ignored in this object. |
Implements IRenderParamsReceiver.
|
pure virtual |
Returns the server context used to initialize this render engine.
ppServer | The address of the variable to receive the interface pointer for the server context. |
|
pure virtual |
Only relevant for 8TF builds. This will retreive the transfer function assigned to the specified index.
index | The index of the transfer function. 0-7 are acceptable values. |
pParams | The address of a RENDER_RANGE_PARAMS array (size MAX_RENDER_RANGES_PARAMS) to get the transfer function definition. This array is expected to be allocated by the caller before calling this function. |
|
pure virtual |
Gets the number of transfer functions applied to the current engine.
numTFs | The address of an h_uint32 variable to store the number of transfer functions. |
|
pure virtual |
Returns the volume data associated with this render engine into the variable at address ppData.
ppData | The address of the variable to receive the interface pointer to the volume data. |
|
pure virtual |
Increases the reference count on this object by 1. You do not need to call this after an object is first created. It is 1 by default.
Implements IRoot.
|
pure virtual |
Returns S_OK if the rendering command is finished OR there is no rendering command in progress. Otherwise, returns S_FALSE.
|
pure virtual |
Takes 3D points in patient coordinates and returns the 2D points that the locations would be projected onto the projection plane. All arrays are expected to be allocated by the caller before calling this function.
vtx | Array of 3D points to project to the screen. |
pt | 2D POINT array that will get the results. |
Num | number of points being projected. |
|
pure virtual |
Projects a volume shadow from the current view location. This is implemented by setting the parts of the volume to be shadowed to the second transfer function. The second TF should then be slightly darker than the first.
|
pure virtual |
Call this function if you wish to free server resources before disconnecting.
|
pure virtual |
Renders the requested image requirements into the result image structure.
pImReq | Requested image requirements. Generally, VOLVISIMAGE::Stage is the only relevant parameter here. |
pImRes | Result image structure. |
|
pure virtual |
Not used by this object. Returns E_NOTIMPL.
Implements IRenderParamsReceiver.
|
pure virtual |
Not used by this object. Returns E_NOTIMPL.
Implements IRenderParamsReceiver.
|
pure virtual |
Not used by this object. Returns E_NOTIMPL.
Implements IRenderParamsReceiver.
|
pure virtual |
Not used by this object. Returns E_NOTIMPL.
Implements IRenderParamsReceiver.
|
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:
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.
|
pure virtual |
Identical to RenderStreamed(), but with an additional parameter called bGetFinishedFrame. If H_TRUE, the frame is sent to the client as usual. If H_FALSE, WaitRender() is called on the server, but the frame is discarded and no bandwidth is wasted on an image you might not want for some reason.
|
pure virtual |
Identical to RenderStreamedEx(), but with two additional parameters. numVertexCallLists is the 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. arrVertices is an array of interface points to vertex call lists describing polygon objects to put into images rendered by this engine.
|
pure virtual |
Identical to RenderStreamedEx2() but with two additional parameters. This call is only relevant for 8TF builds. TFsToSet is a bit mask describing which transfer functions are described by rrps. Bits 0-7 are relevant here. If but 0 is true, this means that TF 0 is being set. The number of true bits in this parameter should be the number of transfer functions in rrps. rrps is an array of RENDER_RANGE_PARAMS array pointers that describe the transfer functions being set. The outer array should be of the size described by the number of true bits in TFsToSet. The inner arrays should all be of length MAX_RENDER_RANGES_PARAMS.
|
pure virtual |
Sets the parameters for adaptive JPEG quality for interactive rendering.
|
pure virtual |
Turns the adaptive JPEG quality on or off for interactive rendering. This will adjust the JPEG compression based on the time taken for previous frames
|
pure virtual |
Not supported by this object. Returns E_NOTIMPL.
Implements IRenderParamsReceiver.
|
pure virtual |
Sets the curved MPR path to use. Essentially, the X vector (m11,m21,m31) in the projection plane describes the direction for the linear slice to take at every interpolated point on the curve. The offset (m14,m24,m34) in the projection plane describes where each point is. From this description, the points you specify are interpolated via Catmull-Rom spline interpolation. The spacing between interpolated points is dictated by the image size. NOTE: You call this function every time you switch to RT_MPR_CURVED. It does not persist across other render types.
numProjPlanes | Numbers of projection plane positions that make up the curve. |
arrProjPlanes | Projection plane positions that describe what we should interpolate between. |
type | Which axis is going to be non-linear? |
Implements IRenderParamsReceiver.
|
pure virtual |
Sets the engine to use fast polygons mode. In this mode changes to IVertexCallListContext objects are rendered more quickly. However, no changes to the dataset are permitted while in this mode. This means that no changes to the position, orientation, or any other RENDER_PARAMS fields are permitted.
bEnabled | If set to H_TRUE, engine runs in fast polygon mode. If set to H_FALSE, engine runs in normal mode. |
|
pure virtual |
Sets the number of frames to render before moving on to the next phase. Set this to 0 to keep the current phase indefinitely.
|
pure virtual |
Sets the allocator to be used when receiving images from the server. Note that images are only allocated when necessary. So, if you pass in an imRes with non-NULL Data, then the data is only reallocated if the size of the image buffer has changed. Otherwise, nothing is allocated. This implies that whenever the Data parameter changes in a rendering call, you've got to free the old memory from the previous frame.
|
pure virtual |
If the control was initialized for 4D rendering, this sets the view to the specified phase.
phase | The phase to set. |
|
pure virtual |
Sets the RENDER_PARAMS for this engine.
pRP | The params to set. |
Implements IRenderParamsReceiver.
|
pure virtual |
bNotifyLinked is ignored by this object. This is functionally identical to SetRenderParams() on this object.
Implements IRenderParamsReceiver.
|
pure virtual |
Identical to SetRenderParams(), but with two additional parameters.
pRP | The params to set. |
numVertexCallLists | The 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. |
arrVertices | An array of interface points to vertex call lists describing polygon objects to put into images rendered by this engine. |
Implements IRenderParamsReceiver.
|
pure virtual |
bNotifyLinked is ignored by this object. This is functionally identical to SetRenderParamsEx2() on this object.
Implements IRenderParamsReceiver.
|
pure virtual |
Identical to SetRenderParamsEx2() but with two additional parameters. This call is only relevant for 8TF builds.
pRP | The params to set. |
numVertexCallLists | The 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. |
arrVertices | An array of interface points to vertex call lists describing polygon objects to put into images rendered by this engine. |
TFsToSet | Bit mask describing which transfer functions are described by rrps. Bits 0-7 are relevant here. If but 0 is true, this means that TF 0 is being set. The number of true bits in this parameter should be the number of transfer functions in rrps. |
rrps | An array of RENDER_RANGE_PARAMS array pointers that describe the transfer functions being set. The outer array should be of the size described by the number of true bits in TFsToSet. The inner arrays should all be of length MAX_RENDER_RANGES_PARAMS. |
|
pure virtual |
As the name implies, set's the render params, starts a render, then compresses (if requested) and sends the previous frame.
imgID | Return value from waitForPrevRender() |
imRes | Information about the image to return. |
rp | Next frame parameters. |
imReq | Information about the next frame's image. |
|
pure virtual |
Identical to SetRenderParamsRenderAndSendPrevFrame(), but with two additional parameters.
imgID | Return value from waitForPrevRender() |
imRes | Information about the image to return. |
rp | Next frame parameters. |
imReq | Information about the next frame's image. |
numVertexCallLists | The 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. |
arrVertices | An array of interface points to vertex call lists describing polygon objects to put into images rendered by this engine. |
|
pure virtual |
Identical to SetRenderParamsRenderAndSendPrevFrameEx() but with two additional parameters. This call is only relevant for 8TF builds.
imgID | Return value from waitForPrevRender() |
imRes | Information about the image to return. |
rp | Next frame parameters. |
imReq | Information about the next frame's image. |
numVertexCallLists | The 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. |
arrVertices | An array of interface points to vertex call lists describing polygon objects to put into images rendered by this engine. |
TFsToSet | Bit mask describing which transfer functions are described by rrps. Bits 0-7 are relevant here. If but 0 is true, this means that TF 0 is being set. The number of true bits in this parameter should be the number of transfer functions in rrps. |
rrps | An array of RENDER_RANGE_PARAMS array pointers that describe the transfer functions being set. The outer array should be of the size described by the number of true bits in TFsToSet. The inner arrays should all be of length MAX_RENDER_RANGES_PARAMS. |
|
pure virtual |
|
pure virtual |
Sets a transfer function to this engine. This call is only relevant for 8TF builds.
index | An integer value describing which transfer function is being set. Values are 0-7 for transfer functions 1-8. |
arrParams | An array of RENDER_RANGE_PARAMS array pointers that describe the transfer function being set. Each element in the array describes a render range which can be used with the assigned transfer function. Each transfer function may be assigned MAX_RENDER_RANGES_PARAMS render ranges with a combined total of MAX_RENDER_RANGE_POINTS points. |
|
pure virtual |
Implements IRenderParamsReceiver.
|
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
pData | The volume data. |
pOctree | An initialized octree for the previously specified volume data. |
|
pure virtual |
Initialized a render engine for 4D rendering on the server. All data sets must be the same dimensions and orientation/skew/spacing.
arrData | An array of numVolumes volume data interface pointers describing the data to apply. |
arrOctrees | An array of numVolumes initialized octree for the previously specified volume data. NULL is acceptable here if RT_THIN_* rendering modes are all that will be used. |
numVolumes | The number of volumes being applied to this engine. |
|
pure virtual |
Shoot (cast) rays out from the projection plane and returns the XYZ coordinate of the first ray/scalar-field interaction/hit. Essentially, this ray casting procedure is identical to ray casting during image rendering so the transfer function and projection plane settings define the probe ray origin, direction and it's first interaction. Unless you are doing connectivity segmentation, you can probably call ShootRayFast() instead of this function for better performance.
ShootRay() can only be called when the render engine is idle. If rendering is in progress ShootRay() will return E_UNEXPECTED.
pt | An array of points on the projection plane from which each ray is emitted. |
rsi | Information about where the points hit. This includes the coordinate, voxel value, and transfer function render range. |
Num | Number of points in the pt and rsi arrays. |
|
pure virtual |
A version of the ShootRay() function that allows one to set the percentage of ray energy that must be absorbed before the ray stops. It also allows one to set the origin coordinate of the ray, and a direction of travel for the ray.
ShootRayEx() can only be called when the render engine is idle. If rendering is in progress ShootRayEx() will return E_UNEXPECTED.
pt | An array of points on the projection plane from which each ray is emitted. |
start | An array of starting coordinate from which each ray is emitted. |
direction | An array of vectors designating the direction of travel for each ray. |
percent | The percentage of ray energy that must be absorbed before the ray is considered to have stopped. |
rsi | Information about where the points hit. This includes the coordinate, voxel value, and transfer function render range. |
Num | Number of points in the each of the pt, start, direction, and rsi arrays. |
|
pure virtual |
A significantly faster version of ShootRay() when shooting more than one ray. The catch is that you will not get the min or max fields back in the RAYSTOPINFO. For that reason, this call is insufficient for connectivity segmentation.
ShootRayFast() can only be called when the render engine is idle. If rendering is in progress ShootRayFast() will return E_UNEXPECTED.
pt | Points on the projection plane. |
rsi | Information about where the points hit. |
Num | Number of points in the pt and rsi arrays. |
|
pure virtual |
A version of the ShootRay() function that determines the dataset inflection points along the ray's path of trave. As a ray travels through a volume the scalar value of the voxels the ray travels through tends to increase or decrease over measurable distances. The ShootRayGetWall() method can detect the inflection points at which the slope of the voxel's scalar gradient changes. For example, as a ray travels through the volume the voxel's scalar values may increase in value, then decrease, then increase again (or vice versa). The ShootRayGetWall() method will return data at the points where the voxel values first begin to decrease and then increase again.
pt | An array of points on the projection plane from which each ray is emitted. |
ShootRayGetWall() can only be called when the render engine is idle. If rendering is in progress ShootRayGetWall() will return E_UNEXPECTED.
rsi | An array of RAYWALLINFO structures that contains the inflection points and a RAYSTOPINFO structure for the voxel where each ray stops. |
Num | Number of points in the each of the pt and rsi arrays. |
|
pure virtual |
Placeholder for ()
|
pure virtual |
Waits for the previously rendering frame to complete. Should be used in conjunction with SetRenderParamsRenderAndSendPrevFrame().