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
public class RayCastIntensityDRRBresenham extends RayCastIntensityDRR
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_fNormalize
-
Fields inherited from class gov.nih.mipav.view.renderer.J3D.volumeview.RayCastIntensity
m_acImageA, m_acImageB, m_kMap
-
Fields 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, yLUTb
-
Fields 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
Constructors Constructor Description RayCastIntensityDRRBresenham(ModelImage kImage, int iRBound, int[] aiRImage)
The constructor for the ray tracer.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
processRay(int iIndex, int rayTraceStepSize)
Process a ray that has intersected the oriented bounding box of the 3D image.boolean
usesNormals()
Return 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, setInput
-
Methods inherited from class gov.nih.mipav.view.renderer.J3D.volumeview.RayCastIntensity
disposeLocal, finalize, hasInputData, hasInputMap, setInputMap
-
Methods 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, traceBlockRays
-
Methods 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 Detail
-
RayCastIntensityDRRBresenham
public RayCastIntensityDRRBresenham(ModelImage kImage, int iRBound, int[] aiRImage)
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 << 8) | (R << 16).
-
-
Method Detail
-
usesNormals
public boolean usesNormals()
Return indication as to whether or not the particular renderer uses normal vectors as part of its implementation.- Overrides:
usesNormals
in 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 << 8) | (R << 16). This method always returns a gray scale value (B = G = R).
- Overrides:
processRay
in classRayCastIntensityDRR
- Parameters:
iIndex
- index of the pixel corresponding to the processed rayrayTraceStepSize
- DOCUMENT ME!
-
-