Class RayCastIntensityDRRBresenham
java.lang.Object
gov.nih.mipav.view.renderer.J3D.volumeview.Renderer
gov.nih.mipav.view.renderer.J3D.volumeview.RayCastRenderer
gov.nih.mipav.view.renderer.J3D.volumeview.RayCastIntensity
gov.nih.mipav.view.renderer.J3D.volumeview.RayCastIntensityDRR
gov.nih.mipav.view.renderer.J3D.volumeview.RayCastIntensityDRRBresenham
- All Implemented Interfaces:
RendererInterfaceIntensity
A sample ray tracer that extends RayTrace. The only two necessary member functions are a constructor and an override
of 'processRay'. This sample shows how to do a very inexpensive ray trace by computing the nearest voxel locations
for the line segment ray-box intersection and using Bresenham's line drawing algorithm to traverse only voxel
locations and accumulate image values.
-
Field Summary
Fields inherited from class gov.nih.mipav.view.renderer.J3D.volumeview.RayCastIntensityDRR
m_fNormalizeFields inherited from class gov.nih.mipav.view.renderer.J3D.volumeview.RayCastIntensity
m_acImageA, m_acImageB, m_kMapFields inherited from class gov.nih.mipav.view.renderer.J3D.volumeview.RayCastRenderer
blue, clipRegionXNeg, clipRegionXPos, clipRegionYNeg, clipRegionYPos, clipRegionZNeg, clipRegionZPos, fXDelta, fYDelta, fZDelta, green, m_fInvXDelta, m_fInvYDelta, m_fInvZDelta, m_kExtent, m_kMDir, m_kMOrig, m_kP0, m_kP1, m_kPDiff, m_kV, m_kWDir, m_kWOrig, opacityFunctA, opacityFunctB, red, vertexDiffuse, vertexSpecular, xLUTa, xLUTb, yLUTa, yLUTbFields inherited from class gov.nih.mipav.view.renderer.J3D.volumeview.Renderer
m_aiRImage, m_akAxis, m_akNormal, m_bParallel, m_bReloadInput, m_fAngle, m_fExtreme, m_fFMult, m_fGamma, m_fNear, m_fRScaleX, m_fRScaleY, m_fXTrn, m_fYTrn, m_fZoom, m_iMaxBound, m_iMinBound, m_iRBound, m_iXBound, m_iXBoundM1, m_iXBoundM2, m_iXYProduct, m_iXYZProduct, m_iYBound, m_iYBoundM1, m_iYBoundM2, m_iZBound, m_iZBoundM1, m_iZBoundM2, m_kBackgroundColor, m_kEyeModel, m_kEyeWorld, m_kImage, m_kLightSet, m_kMaterial, m_kRotate -
Constructor Summary
ConstructorsConstructorDescriptionRayCastIntensityDRRBresenham(ModelImage kImage, int iRBound, int[] aiRImage) The constructor for the ray tracer. -
Method Summary
Modifier and TypeMethodDescriptionprotected voidprocessRay(int iIndex, int rayTraceStepSize) Process a ray that has intersected the oriented bounding box of the 3D image.booleanReturn indication as to whether or not the particular renderer uses normal vectors as part of its implementation.Methods inherited from class gov.nih.mipav.view.renderer.J3D.volumeview.RayCastIntensityDRR
processRay, setInputMethods inherited from class gov.nih.mipav.view.renderer.J3D.volumeview.RayCastIntensity
disposeLocal, finalize, hasInputData, hasInputMap, setInputMapMethods inherited from class gov.nih.mipav.view.renderer.J3D.volumeview.RayCastRenderer
getAxis, interpolate, rotateBy, rotateFrameBy, setAxis, setBlurFlag, setDiffuse, setOpacityFunctions, setSpecular, setXBoundNeg, setXBoundPos, setYBoundNeg, setYBoundPos, setZBoundNeg, setZBoundPos, trace, traceBlockRaysMethods inherited from class gov.nih.mipav.view.renderer.J3D.volumeview.Renderer
computeIntegralNormalizationFactor, convertWorldToModel, disposeLocal, getAngle, getBackgroundColor, getExtreme, getEyeDist, getEyePoint, getGamma, getMaxBound, getMinBound, getNear, getParallel, getXBound, getXTranslate, getYBound, getYTranslate, getZBound, getZoom, hasNormals, orthonormalize, reloadInputData, reloadInputData, setAngle, setBackgroundColor, setExtreme, setEyeDist, setGamma, setLighting, setMaterialShininess, setNear, setNearAndAngle, setNormals, setParallel, setXTranslate, setYTranslate, setZoom, traceInit
-
Constructor Details
-
RayCastIntensityDRRBresenham
The constructor for the ray tracer. Currently, the only client of this class is VolumeRenderer.- Parameters:
kImage- the 3D imageiRBound- the rendered image dimension (image is square)aiRImage- The rendered image data stored in row-major order. Each integer pixel represents an RGB color in the format B | (G invalid input: '<'invalid input: '<' 8) | (R invalid input: '<'invalid input: '<' 16).
-
-
Method Details
-
usesNormals
public boolean usesNormals()Return indication as to whether or not the particular renderer uses normal vectors as part of its implementation.- Overrides:
usesNormalsin classRayCastIntensityDRR- Returns:
- boolean True if the implementation uses normals.
-
processRay
protected void processRay(int iIndex, int rayTraceStepSize) Process a ray that has intersected the oriented bounding box of the 3D image. The method is only called if there is a line segment of intersection. The 'intersectsBox' stores the end points of the line segment in the class members m_kP0 and m_kP1 in image coordinates. This method uses Bresenham's line drawing algorithm to numerically integrate the image (at a coarse level) along the line segment.The function sets the color of the pixel corresponding to the processed ray. The RGB value is stored as an integer in the format B | (G invalid input: '<'invalid input: '<' 8) | (R invalid input: '<'invalid input: '<' 16). This method always returns a gray scale value (B = G = R).
- Overrides:
processRayin classRayCastIntensityDRR- Parameters:
iIndex- index of the pixel corresponding to the processed rayrayTraceStepSize- DOCUMENT ME!
-