Fovia's .NET Client/Server API
Static Public Member Functions | Static Public Attributes | List of all members
com.fovia.hdrc.utils.hdrc3DHelpers Class Reference
Inheritance diagram for com.fovia.hdrc.utils.hdrc3DHelpers:
com.fovia.hdrcsrv.hdrcDefines

Static Public Member Functions

static void clipLineToPlane (VECTOR3D line[], PLANEEQF plane)
 
static void clipLineToPlanes (VECTOR3D line[], PLANEEQF planes[])
 
static VECTOR3D[] clipLineToRectangle (VECTOR3D line[], VECTOR3D rect[])
 
static boolean cutPlaneAffectsVolume (PLANEEQF plane, VECTOR3D vbp[], double fudgeFactor)
 
static RENDER_PARAMS DICOMRefToFovia (hdrcDICOMImageDesc desc, double spacingX, VECTOR3D volumeOffset)
 
static double distanceToSlabCenter (RENDER_PARAMS rp, VOLUME_DATA_PARAMS vdp)
 
static void drawObscuredLines (Graphics g, hdrcRenderEngineContext rec, VECTOR3D lines[][], int pixelsPerPoint[], Color visibleColor, Color obscuredColor, float zoom, double spacingX, MATRIX44D transform, SIZE imgSize, boolean bBehindPPVisible)
 
static void drawObscuredLines (Graphics g, hdrcRenderEngineContext rec, VECTOR3D lines[][], int pixelsPerPoint[], Color visibleColor, Color obscuredColor, float zoom, double spacingX, MATRIX44D transform, SIZE imgSize, boolean bBehindPPVisible, int renderType, double viewAngle)
 
static void drawOrientationCube (Graphics g, Color textCol, Color bgCol, int offsX, int offsY, int width, int height, RENDER_PARAMS rp)
 
static hdrcDICOMImageDesc foviaRefToDICOM (RENDER_PARAMS rp, double spacingX, VECTOR3D volumeOffset)
 
static String getBiasNameMedical (VECTOR3D dir)
 
static VECTOR3D getContributions (VECTOR3D vec)
 
static double getConvertedViewAngle (SIZE imgSize, double viewAngle)
 
static Vector< VECTOR3DgetCurvedLine (VECTOR3D points[], int pixelsPerSubdiv)
 
static boolean getHasSecondaryBias (double threshold, int primaryBias, VECTOR3D contributions)
 
static VECTOR3D getLineNormal (VECTOR3D points[], VECTOR3D look, int startIdx, int endIdx, double delta)
 
static VECTOR3D[] getLineOfIntersection (PLANEEQF p1, PLANEEQF p2)
 
static VECTOR3D getLineTangent (VECTOR3D points[], int startIdx, int endIdx, double delta)
 
static double getPercentageIntoVolume (MATRIX44D transform, VECTOR3D volumeBoxPoints[])
 
static double getPercentageIntoVolume (VECTOR3D loc, VECTOR3D vecZ, VECTOR3D volumeBoxPoints[])
 
static double getPercentageIntoVolume (MATRIX44D transform, boolean bUseSlabCenter, double slabThickness, VECTOR3D volumeBoxPoints[])
 
static double getPercentageIntoVolume (VECTOR3D loc, VECTOR3D vecZ, boolean bUseSlabCenter, double slabThickness, VECTOR3D volumeBoxPoints[])
 
static double getPixelsPerMillimeter (double spacingX, double zoom)
 
static PLANEEQF getPlaneEquation (VECTOR3D pt1, VECTOR3D pt2, VECTOR3D pt3)
 
static PLANEEQF getPlaneEquation (MATRIX44D transform)
 
static VECTOR3D getPointAtPercentageIntoVolume (double pct, VECTOR3D[] volumeBoxPoints, RENDER_PARAMS rp)
 
static VECTOR3D getPointAtPercentageIntoVolume (double pct, boolean bUseSlabCenter, VECTOR3D[] volumeBoxPoints, RENDER_PARAMS rp)
 
static VECTOR3D getPointLocation (hdrcIRenderParamsReceiver control, int x, int y) throws IOException
 
static VECTOR3D getPointOfIntersection (PLANEEQF p1, PLANEEQF p2, PLANEEQF p3)
 
static int getPrimaryBias (VECTOR3D contributions)
 
static int getSecondaryBias (int primaryBias, VECTOR3D contributions)
 
static PLANEEQF[] getVolumeBoxPlanes (VECTOR3D vbPoints[])
 
static VECTOR3D[] getVolumeBoxPoints (VOLUME_DATA_PARAMS vdp)
 
static VECTOR3D getVolumeOffset (VECTOR3D firstSliceLoc, VECTOR3D lastSliceLoc, VOLUME_DATA_PARAMS vdp)
 
static VECTOR3D getVolumeOffset (boolean bCenterOfSliceIsSliceLocation, VECTOR3D firstSliceLoc, VECTOR3D lastSliceLoc, VOLUME_DATA_PARAMS vdp)
 
static double getZoomForPixelsPerMillimeter (double spacingX, double pixelsPerMilli)
 
static VECTOR3D intersectLineWithPlane (VECTOR3D pt1, VECTOR3D pt2, PLANEEQF pl, VECTOR3D plPt)
 
static boolean isPointVisible (VECTOR3D point, RAYSTOPINFO rsi, MATRIX44D transform, boolean bBehindPPVisible)
 
static boolean pointInPolygon (VECTOR3D polygon[], VECTOR3D point)
 
static boolean pointOnLine2D (VECTOR3D line[], VECTOR3D point, double tolerance)
 
static VECTOR3D renderImageLoc2VolumeCoordinates (int x, int y, MATRIX44D transform, SIZE imgSize, float zoom, VOLUME_DATA_PARAMS vdp)
 
static void rotatePointAroundVector (VECTOR3D pt, VECTOR3D axis, double rot)
 
static void setPercentageIntoVolume (double pct, hdrcIRenderParamsReceiver control, VECTOR3D volumeBoxPoints[]) throws IOException
 
static void setPercentageIntoVolume (double pct, boolean bUseSlabCenter, hdrcIRenderParamsReceiver control, VECTOR3D volumeBoxPoints[]) throws IOException
 
static VECTOR3D shootRayToPointInCenterOfView (hdrcIRenderParamsReceiver control) throws IOException
 
static VECTOR3D shootRayToPointInCenterOfView (hdrcIRenderParamsReceiver control, double percent) throws IOException
 
static VECTOR3D shootRayToPointLocation (hdrcIRenderParamsReceiver control, int x, int y) throws IOException
 
static VECTOR3D shootRayToPointLocation (hdrcIRenderParamsReceiver control, int x, int y, double percent) throws IOException
 
static void snapPointsToPlane (PLANEEQF plane, VECTOR3D points[])
 
static VECTOR3D volume2ProjectionPlane (double x, double y, double z, float zoom, double spacingX, MATRIX44D transform, SIZE imgSize)
 
static VECTOR3D volume2ProjectionPlane (int renderType, double x, double y, double z, float zoom, double spacingX, MATRIX44D transform, SIZE imgSize, double convertedViewAngle)
 
static VECTOR3D volume2ProjectionPlaneParallel (double x, double y, double z, float zoom, double spacingX, MATRIX44D transform, SIZE imgSize)
 
static VECTOR3D volume2ProjectionPlanePerspective (double x, double y, double z, MATRIX44D transform, SIZE imgSize, double convertedViewAngle)
 

Static Public Attributes

static final String BIAS_NAMES_MEDICAL []
 
static final int X_NEG = 1
 
static final int X_POS = 0
 
static final int Y_NEG = 3
 
static final int Y_POS = 2
 
static final int Z_NEG = 5
 
static final int Z_POS = 4
 
- Static Public Attributes inherited from com.fovia.hdrcsrv.hdrcDefines
static final int CID_APPLY_AS_COLORIZATION_MAP = 66
 
static final int CID_APPLY_VOLUMETRIC_SHADOW_MAP = 72
 
static final int CID_AUTONAVIGATE = 29
 
static final int CID_CHECK_CHANNEL = 23
 
static final int CID_CREATE_IVOLUMESEGMENTATION = 26
 
static final int CID_CREATE_POLYGONUTIL = 60
 
static final int CID_CREATE_RENDER_ENGINE = 2
 
static final int CID_CREATE_VERTEX_CALL_LIST = 53
 
static final int CID_CREATE_VOLUME_OCTREE = 4
 
static final int CID_CREATE_VOLUME_SHADOW = 74
 
static final int CID_FAST_SWAP = 44
 
static final int CID_FIND_PATH = 52
 
static final int CID_FINISH_JOB = 16
 
static final int CID_GET_COLORIZATION = 58
 
static final int CID_GET_CURVED_REFORMAT = 43
 
static final int CID_GET_DATA_HOLDER = 20
 
static final int CID_GET_HISTOGRAM = 28
 
static final int CID_GET_JOB_INFO = 15
 
static final int CID_GET_RENDER_ENGINE_TF_COUNT = 65
 
static final int CID_GET_RENDER_PARAMS = 6
 
static final int CID_GET_SEGMENTATION = 30
 
static final int CID_GET_TRANSFER_FUNCTION = 57
 
static final int CID_GET_VISIBILITY_INFO = 39
 
static final int CID_GET_VOLUME_DATA_PARAMS = 17
 
static final int CID_GETDICOMTAGS = 35
 
static final int CID_IS_RENDERING_FINISHED = 27
 
static final int CID_IVOLUMESEGMENTATION_CALL = 25
 
static final int CID_LOAD_DICOM_FILE_LIST = 33
 
static final int CID_LOAD_PRESET = 9
 
static final int CID_LOAD_RAW_FILES = 62
 
static final int CID_LOAD_SERIES_FROM_DICOM_LIST = 34
 
static final int CID_LOAD_VOLUME_DATA = 1
 
static final int CID_OUTPUTDICOMIMAGES = 37
 
static final int CID_POLYGONUTIL_CALL = 61
 
static final int CID_PROJECT_POINT = 13
 
static final int CID_PROJECT_VOLUMETRIC_SHADOW = 45
 
static final int CID_RELEASE_ALL_SESSION_OBJECT = 55
 
static final int CID_RELEASE_SESSION_OBJECT = 19
 
static final int CID_RENDER = 7
 
static final int CID_RENDER_SHADOW_LIGHT = 73
 
static final int CID_RETRIEVE_DATA = 22
 
static final int CID_SAVE_PRESET = 18
 
static final int CID_SCAN_DICOM_DIRECTORY = 32
 
static final int CID_SET_CLIENT_VERSION = 64
 
static final int CID_SET_COLORIZATION = 59
 
static final int CID_SET_COLORIZATION_COLORS = 51
 
static final int CID_SET_COLORIZATION_ENABLED = 49
 
static final int CID_SET_COLORIZATION_INDEX = 50
 
static final int CID_SET_CURVED_MPR_PATH = 42
 
static final int CID_SET_FAST_POLYGONS_ENABLED = 67
 
static final int CID_SET_FRAMES_PER_PHASE = 48
 
static final int CID_SET_PHASE = 47
 
static final int CID_SET_RENDER_PARAMS = 5
 
static final int CID_SET_SEG_BOUNDARIES = 70
 
static final int CID_SET_SEGMENTATION = 31
 
static final int CID_SET_TRANSFER_FUNCTION = 56
 
static final int CID_SET_VIEW_MODE = 24
 
static final int CID_SET_VOLUME_DATA = 3
 
static final int CID_SET_VOLUME_DATA_4D = 46
 
static final int CID_SETDICOMTAGS = 36
 
static final int CID_SETRP_AND_RENDER = 8
 
static final int CID_SETRP_RENDER_AND_SEND_PREV = 41
 
static final int CID_SHOOT_RAY = 12
 
static final int CID_SHOOT_RAY_FAST = 38
 
static final int CID_SHOOT_RAY_GET_WALL = 69
 
static final int CID_START_JOB = 14
 
static final int CID_STORE_DATA = 21
 
static final int CID_TESTFUNCTION = 63
 
static final int CID_UPDATE_OCTREE = 68
 
static final int CID_UPDATE_VERTEX_CALL_LISTS = 54
 
static final int CID_VOLUME_SHADOW_CALL = 71
 
static final int CID_WAIT_PREV_RENDER = 40
 
static final int CM_DILATION = 5
 
static final int CM_EROSION = 4
 
static final int CM_MIN_MAX = 0
 
static final int CM_MIN_MAX_BONE = 3
 
static final int CM_MIN_MAX_SMART = 1
 
static final int CM_MIN_MAX_SMART_EXPAND = 2
 
static final int COLOR_MODEL_GRAYSCALE12 = COLOR_MODEL_GRAYSCALE8+1
 
static final int COLOR_MODEL_GRAYSCALE8 = COLOR_MODEL_NONE+1
 
static final int COLOR_MODEL_NONE = 0
 
static final int COLOR_MODEL_RGB = COLOR_MODEL_GRAYSCALE12+1
 
static final int COMPRESSION_TYPE_JPEG = COMPRESSION_TYPE_ZIP+1
 
static final int COMPRESSION_TYPE_JPEG2000 = COMPRESSION_TYPE_STRETCH+1
 
static final int COMPRESSION_TYPE_JPEG_RGB = COMPRESSION_TYPE_PNG+1
 
static final int COMPRESSION_TYPE_NONE = 0
 
static final int COMPRESSION_TYPE_PNG = COMPRESSION_TYPE_RLE+1
 
static final int COMPRESSION_TYPE_RLE = COMPRESSION_TYPE_JPEG2000+1
 
static final int COMPRESSION_TYPE_STRETCH = COMPRESSION_TYPE_JPEG+1
 
static final int COMPRESSION_TYPE_ZIP = COMPRESSION_TYPE_NONE+1
 
static final int CP_FRAGMENT_FORM_MASK = 0x0000C000
 
static final int CP_FRAGMENT_FORM_SQUARE = 0x00004000
 
static final int CP_FRAGMENT_FORM_STRIPE = 0x00008000
 
static final int CP_FRAGMENT_ID_MASK = 0x000000FF
 
static final int CP_FRAGMENT_ID_SHIFT = 0
 
static final int CP_FRAGMENT_NONE = 0x0
 
static final int CP_FRAGMENT_PACKING_FRAGMENT_ONLY = 0x00001000
 
static final int CP_FRAGMENT_PACKING_MASK = 0x0000F000
 
static final int CP_FRAGMENT_PACKING_SHIFT = 11
 
static final int CP_FRAGMENT_PACKING_TYPE_MASK = 0x00003000
 
static final int CP_FRAGMENT_PACKING_WHOLE_IMAGE = 0x00000000
 
static final int CP_FRAGMENT_SQUARE_SIZE = 256
 
static final int CP_FRAGMENT_STRIPE_SIZE = 128
 
static final int CP_FRAGMENT_VALID = 0x70000000
 
static final int CULL_MODE_BACK = 1
 
static final int CULL_MODE_BACK_INV = 2
 
static final int CULL_MODE_NONE = 0
 
static final int CURVED_MPR_TYPE_X_IS_CURVED = CURVED_MPR_TYPE_X_IS_CURVED_TRILINEAR
 
static final int CURVED_MPR_TYPE_X_IS_CURVED_TRICUBIC = CURVED_MPR_TYPE_Y_IS_CURVED_TRILINEAR+1
 
static final int CURVED_MPR_TYPE_X_IS_CURVED_TRILINEAR = 0
 
static final int CURVED_MPR_TYPE_Y_IS_CURVED = CURVED_MPR_TYPE_Y_IS_CURVED_TRILINEAR
 
static final int CURVED_MPR_TYPE_Y_IS_CURVED_TRICUBIC = CURVED_MPR_TYPE_X_IS_CURVED_TRICUBIC+1
 
static final int CURVED_MPR_TYPE_Y_IS_CURVED_TRILINEAR = CURVED_MPR_TYPE_X_IS_CURVED_TRILINEAR+1
 
static final int CUT_PLANE_MODE_MAX_DISTANCE = CUT_PLANE_MODE_STANDARD+1
 
static final int CUT_PLANE_MODE_MIN_DISTANCE = CUT_PLANE_MODE_MAX_DISTANCE+1
 
static final int CUT_PLANE_MODE_STANDARD = 0
 
static final int CUT_PLANE_STATUS_DISABLED = 0
 
static final int CUT_PLANE_STATUS_ENABLED = CUT_PLANE_STATUS_DISABLED+1
 
static final int CUT_PLANE_TYPE_NEGATIVE = CUT_PLANE_TYPE_POSITIVE+1
 
static final int CUT_PLANE_TYPE_POSITIVE = 0
 
static final int DEFAULT_RENDER_IMAGE_HEIGHT = 512
 
static final int DEFAULT_RENDER_IMAGE_WIDTH = 512
 
static final int DO_SLICE = 0
 
static final int DT_BIG_ENDIAN = 2
 
static final int DT_MONOCHROME_1 = 16
 
static final int DT_REVERSE_BIT_ORDER = 4
 
static final int DT_SIGNED = 1
 
static final int DT_UPPER_BITS_DIRTY = 8
 
static final int E_FAIL = 0x80004005
 
static final int E_INVALIDARG = 0x80070057
 
static final int E_NOINTERFACE = 0x80004002
 
static final int E_NOTIMPL = 0x80004001
 
static final int E_OUTOFMEMORY = 0x8007000E
 
static final int E_PENDING = 0x8000000A
 
static final int E_POINTER = 0x80004003
 
static final int E_UNEXPECTED = 0x8000FFFF
 
static final int EROSION_DILATION_CLASSIC = 255
 
static final int FHC_COMPLETE_VOLUME = 3
 
static final int FHC_FIRST_LAYER = 2
 
static final int FHC_SURFACE_ONLY = 1
 
static final int FHC_WHOLE_VOLUME = 0
 
static final int FPS_NO_CAP = 100000
 
static final int IMAGE_TYPE_LUMINANCE12 = (2<<8)|2
 
static final int IMAGE_TYPE_LUMINANCE16 = (3<<8)|2
 
static final int IMAGE_TYPE_LUMINANCE8 = (1<<8)|1
 
static final int IMAGE_TYPE_NONE = 0
 
static final int IMAGE_TYPE_RGB = (4<<8)|3
 
static final int IMAGE_TYPE_RGBA = (5<<8)|4
 
static final int IMAGE_TYPE_RGBX = (6<<8)|4
 
static final int LDO_DCM_UTF8 = 1002
 
static final int LDO_DICOM_DIRECTORY = 1
 
static final int LDO_DICOM_FILE_SET =3
 
static final int LDO_FILE_SET = 4
 
static final int LDO_MEMORY_BLOCK = 2
 
static final int LDO_MEMORY_MAP_SET = 5
 
static final int LDO_RAW_DATASET_PATH = 0
 
static final int LDO_SEGY_DATASET_PATH =6
 
static final int LIGHT_MODEL_BEAM = 0
 
static final int LIGHT_MODEL_HEADLIGHT = LIGHT_MODEL_BEAM+1
 
static final int LMM_ATTACHED_TO_CAMERA = 0
 
static final int LMM_ATTACHED_TO_DATASET = 1
 
static final int MAX_ALTERNATE_TRANSFER_FUNCTIONS = 7
 
static final int MAX_CT_VALUE = 1024*4-1024
 
static final int MAX_CUTPLANES = 16
 
static final int MAX_DATASET_BIT_DEPTH = 16
 
static final int MAX_DIMENSION_X = 4096
 
static final int MAX_DIMENSION_Y = 4096
 
static final int MAX_DIMENSION_Z = 4096
 
static final int MAX_OPACITY_FUNCTION_VALUE = 1024*4 - 1
 
static final int MAX_RENDER_IMAGE_HEIGHT = 8192
 
static final int MAX_RENDER_IMAGE_WIDTH = 8192
 
static final int MAX_RENDER_RANGE_POINTS = 50
 
static final int MAX_RENDER_RANGES_PARAMS = 8
 
static final float MAX_RENDER_ZOOM = 700.0f
 
static final double MAX_THIN_SLAB = 4096
 
static final int MESH_UPDATE_ALL = 63
 
static final int MESH_UPDATE_COLORS = 4
 
static final int MESH_UPDATE_INDICES = 16
 
static final int MESH_UPDATE_NORMALS = 2
 
static final int MESH_UPDATE_SHADING = 8
 
static final int MESH_UPDATE_TEX_COORDS = 32
 
static final int MESH_UPDATE_VERTICES = 1
 
static final int MIN_CT_VALUE = 0 -1024
 
static final int MIN_OPACITY_FUNCTION_VALUE = 0
 
static final int MIN_RENDER_IMAGE_HEIGHT = 64
 
static final int MIN_RENDER_IMAGE_WIDTH = 64
 
static final float MIN_RENDER_ZOOM = 0.125f
 
static final double MIN_THIN_SLAB = 0
 
static final int PET_MARCHING_CUBES = 0
 
static final int PPM_CALL_LISTS = (1<<0)
 
static final int PPM_NONE = 0
 
static final int RENDER_ENGINE_ID_MIP = 3
 
static final int RENDER_ENGINE_ID_MPR = 0
 
static final int RENDER_ENGINE_ID_PAR = 1
 
static final int RENDER_ENGINE_ID_PER = 2
 
static final int RENDER_IMAGE_HEIGHT_STEP = 16
 
static final int RENDER_IMAGE_WIDTH_STEP = 16
 
static final int RENDER_QUALITY_BEST = RENDER_QUALITY_BETTER+1
 
static final int RENDER_QUALITY_BETTER = RENDER_QUALITY_DRAFT+1
 
static final int RENDER_QUALITY_DRAFT = RENDER_QUALITY_RAW+1
 
static final int RENDER_QUALITY_NONE = 0
 
static final int RENDER_QUALITY_PRINT = 0x7fffffff
 
static final int RENDER_QUALITY_RAW = RENDER_QUALITY_NONE+1
 
static final int RENDER_RANGE_STATUS_DISABLED = RENDER_RANGE_STATUS_ENABLED+1
 
static final int RENDER_RANGE_STATUS_ENABLED = 0
 
static final int RENDER_RANGE_TYPE_AUTO_COLOR = RENDER_RANGE_TYPE_CATMUL+1
 
static final int RENDER_RANGE_TYPE_BSPLINE = RENDER_RANGE_TYPE_LINES_END_COLOR+1
 
static final int RENDER_RANGE_TYPE_CATMUL = RENDER_RANGE_TYPE_BSPLINE+1
 
static final int RENDER_RANGE_TYPE_LINES = RENDER_RANGE_TYPE_NONE+1
 
static final int RENDER_RANGE_TYPE_LINES_END_COLOR = RENDER_RANGE_TYPE_LINES+1
 
static final int RENDER_RANGE_TYPE_NONE = 0
 
static final int RENDER_STAGE_AUTO_IMPROVE = RENDER_STAGE_CURRENT+1
 
static final int RENDER_STAGE_CURRENT = RENDER_STAGE_FINAL+1
 
static final int RENDER_STAGE_FINAL = RENDER_STAGE_PROGR5+1
 
static final int RENDER_STAGE_NONE = 0
 
static final int RENDER_STAGE_PROGR0 = RENDER_STAGE_NONE+1
 
static final int RENDER_STAGE_PROGR1 = RENDER_STAGE_PROGR0+1
 
static final int RENDER_STAGE_PROGR2 = RENDER_STAGE_PROGR1+1
 
static final int RENDER_STAGE_PROGR3 = RENDER_STAGE_PROGR2+1
 
static final int RENDER_STAGE_PROGR4 = RENDER_STAGE_PROGR3+1
 
static final int RENDER_STAGE_PROGR5 = RENDER_STAGE_PROGR4+1
 
static final int RF_ALL = 0x7FFFFFFF
 
static final int RF_ALLOW_IMAGE_SMOOTH = (1<<2)
 
static final int RF_ALLOW_RENDER_CACHE = (1<<1)
 
static final int RF_CUT_PLANES_AFFECT_POLYGONS =(1 << 13)
 
static final int RF_DEFAULT = RF_ALLOW_IMAGE_SMOOTH|RF_USE_GRADIENTS|RF_USE_SLAB_MIP
 
static final int RF_DONT_NORMALIZE_TF = (1<<7)
 
static final int RF_FRONT_CLIPPING_PLANE_ENABLED = (1<<8)
 
static final int RF_LONG_TRIANGLE_FIX =(1 << 14)
 
static final int RF_MASK_DEFAULT = RF_ALLOW_IMAGE_SMOOTH|RF_USE_GRADIENTS|RF_USE_SLAB_MPR|RF_USE_SLAB_PAR|RF_USE_SLAB_MIP|RF_POLYGON_LINES_IN_SCREEN_SPACE
 
static final int RF_NONE = (0)
 
static final int RF_POLYGON_CROSS_SECTIONS =(1 << 12)
 
static final int RF_POLYGON_LINES_IN_SCREEN_SPACE =(1 << 10)
 
static final int RF_THICK_MODES_USE_TRANSFER_FUNCTION =(1 << 9)
 
static final int RF_THIN_MODES_OUTPUT_RGB =(1 << 15)
 
static final int RF_USE_GRADIENTS = (1<<3)
 
static final int RF_USE_SLAB_MIP = (1<<6)
 
static final int RF_USE_SLAB_MPR = (1<<4)
 
static final int RF_USE_SLAB_PAR = (1<<5)
 
static final int RF_VERTEX_COLOR_MAP =(1 << 11)
 
static final int RPM_ALL = 0x7FFFFFFF
 
static final int RPM_AMBIENCE = (1 <<30)
 
static final int RPM_BACK_COLOR = (1<<17)
 
static final int RPM_BRIGHTNESS = (1<<18)
 
static final int RPM_COLOR_MODEL = (1<<7)
 
static final int RPM_CROP_BOX = (1<<16)
 
static final int RPM_CUT_PLANES = (1<<23)
 
static final int RPM_DEFAULT = RPM_ALL
 
static final int RPM_DESIRED_FPS = (1<<10)
 
static final int RPM_FRONT_SLAB_POLYGON_TRANSPARENCY = (1 <<29)
 
static final int RPM_GRAD_INSEN_SLAB = (1<<15)
 
static final int RPM_LIGHT_MODEL = (1<<9)
 
static final int RPM_LIGHT_PARAMS = (1<<27)
 
static final int RPM_MIN_QUALITY_BIAS = (1<<28)
 
static final int RPM_NONE = (0)
 
static final int RPM_NUM_RENDERING_THREADS = (1<<25)
 
static final int RPM_PHONG_PARAMETERS = RPM_AMBIENCE | RPM_BRIGHTNESS | RPM_SHININESS | RPM_REFLECTION
 
static final int RPM_QUALITY = (1<<8)
 
static final int RPM_RAYCASTING_PRECISION = (1<<21)
 
static final int RPM_REAR_SLAB_POLYGON_TRANSPARENCY = (1 <<31)
 
static final int RPM_REFLECTION = (1<<20)
 
static final int RPM_RENDER_IMAGE_SIZE = (1<<24)
 
static final int RPM_RENDER_RANGE_MIN_MAX = (1<<11)
 
static final int RPM_RENDER_RANGES = (1<<12)
 
static final int RPM_RENDER_SAMPLES = (1<<22)
 
static final int RPM_RENDER_TYPE = (1<<0)
 
static final int RPM_SHININESS = (1<<19)
 
static final int RPM_SLAB_THICKNESS = (1<<14)
 
static final int RPM_STEREO_MODE = (1<<26)
 
static final int RPM_TRANSFORM = RPM_TRANSFORM_RSS|RPM_TRANSFORM_OFFSET|RPM_TRANSFORM_PC
 
static final int RPM_TRANSFORM_OFFSET = RPM_TRANSFORM_XPOS|RPM_TRANSFORM_YPOS|RPM_TRANSFORM_ZPOS
 
static final int RPM_TRANSFORM_PC = (1<<5)
 
static final int RPM_TRANSFORM_RSS = (1<<4)
 
static final int RPM_TRANSFORM_XPOS = (1<<1)
 
static final int RPM_TRANSFORM_YPOS = (1<<2)
 
static final int RPM_TRANSFORM_ZPOS = (1<<3)
 
static final int RPM_VIEW_ANGLE = (1<<13)
 
static final int RPM_ZOOM = (1<<6)
 
static final int RT_AUTO_FADED_MIP = (1<<18)
 
static final int RT_AUTO_MINIP = (1<<19)
 
static final int RT_AUTO_MIP = (1<<17)
 
static final int RT_BRUTE_FORCE_AVE = RT_THIN_AVE
 
static final int RT_BRUTE_FORCE_FMIP = RT_THIN_FMIP
 
static final int RT_BRUTE_FORCE_MINIP = RT_THIN_MINIP
 
static final int RT_BRUTE_FORCE_MIP = RT_THIN_MIP
 
static final int RT_MIP = RT_THICK_MIP
 
static final int RT_MPR_AXIAL = (1<<3)
 
static final int RT_MPR_CORONAL = (1<<5)
 
static final int RT_MPR_CURVED = (1<<13)
 
static final int RT_MPR_OBLIQUE = (1<<6)
 
static final int RT_MPR_SAGITTAL = (1<<4)
 
static final int RT_MPR_XY = (1<<0)
 
static final int RT_MPR_XZ = (1<<1)
 
static final int RT_MPR_YZ = (1<<2)
 
static final int RT_NONE = 0
 
static final int RT_PARALLEL = (1<<7)
 
static final int RT_PERSPECTIVE = (1<<8)
 
static final int RT_RESERVED16 = (1<<16)
 
static final int RT_THICK_FADED_MIP = (1<<10)
 
static final int RT_THICK_MINIP = (1<<20)
 
static final int RT_THICK_MINIP_PERSPECTIVE = (1<<22)
 
static final int RT_THICK_MIP = (1<<9)
 
static final int RT_THICK_MIP_PERSPECTIVE = (1<<21)
 
static final int RT_THIN_AVE = (1<<14)
 
static final int RT_THIN_FMIP = (1<<12)
 
static final int RT_THIN_MINIP = (1<<15)
 
static final int RT_THIN_MIP = (1<<11)
 
static final int RT_XRAY = RT_THICK_FADED_MIP
 
static final int S_FALSE = 1
 
static final int S_OK = 0
 
static final int SEG_GRAN_1X1X1 = 0
 
static final int SEG_GRAN_2X2X2 = 1
 
static final int SEGMENTATION_TYPE_ADDITIVE = 0
 
static final int SEGMENTATION_TYPE_SUBTRACTIVE = 1
 
static final int SK_CUSTOM = 4
 
static final int SK_MIN_MAX = 0
 
static final int SK_MIN_MAX_BONE = 3
 
static final int SK_MIN_MAX_GRADIENT = 1
 
static final int SK_MIN_MAX_GRADIENT_EXPAND = 2
 
static final int SMOOTH3D_NONE = 0
 
static final int SMOOTH3D_TRICUBIC = 2
 
static final int SMOOTH3D_TRILINEAR = 1
 
static final int SPT_LAPLACIAN = 1
 
static final int SPT_NONE = 0
 
static final int ST_ADDITIVE = 0
 
static final int ST_SUBTRACTIVE = 1
 
static final int STEREO_MODE_LEFT_EYE = 1
 
static final int STEREO_MODE_OFF = 0
 
static final int STEREO_MODE_RIGHT_EYE = 2
 
static final int THICK_TF_MIP_OPACITY = 500
 
static final int TO_NONE = 0
 
static final int TO_SHOW_COMMAND_ARGUMENTS = (1 << 2)
 
static final int TO_SHOW_COMMAND_DEBUG1 = (1 << 4)
 
static final int TO_SHOW_COMMAND_DEBUG2 = (1 << 5)
 
static final int TO_SHOW_COMMAND_DEBUG3 = (1 << 6)
 
static final int TO_SHOW_COMMAND_RESULTS = (1 << 3)
 
static final int TO_SHOW_COMMAND_TIME = (1 << 1)
 
static final int TO_SHOW_COMMANDS = (1 << 0)
 
static final double TRANSFER_FUNCTION_LOG_CORRECTION = 0.4
 
static final int UPDATE_MODE_CLEAR = 0
 
static final int UPDATE_MODE_CLEAR_BY_MASK = 10
 
static final int UPDATE_MODE_CLEAR_MULTI_TF = UPDATE_MODE_SET_TF_2+1
 
static final int UPDATE_MODE_CLEAR_NODES_ONLY = UPDATE_MODE_INVERT_MULTI_TF+1
 
static final int UPDATE_MODE_INVERT = UPDATE_MODE_NEGATIVE+1
 
static final int UPDATE_MODE_INVERT_MULTI_TF = UPDATE_MODE_CLEAR_MULTI_TF+1
 
static final int UPDATE_MODE_NEGATIVE = UPDATE_MODE_POSITIVE+1
 
static final int UPDATE_MODE_POSITIVE = UPDATE_MODE_CLEAR+1
 
static final int UPDATE_MODE_REBUILD = UPDATE_MODE_INVERT+1
 
static final int UPDATE_MODE_SET_TF_1 = UPDATE_MODE_REBUILD+1
 
static final int UPDATE_MODE_SET_TF_2 = UPDATE_MODE_SET_TF_1+1
 
static final int VCL_OPTIMIZE_DO_NOT_REMOVE = 0xFFFFFFFF
 
static final int VCL_TYPE_LINES = 1
 
static final int VCL_TYPE_TRIANGLES = 0
 
static final int VCLF_CUT_PLANES_AFFECT_POLYGONS =(1 << 0)
 
static final int VCLF_INVERT_MESH_GRADIENTS =(1 << 2)
 
static final int VCLF_NONE =(0 )
 
static final int VCLF_PER_CALL_LIST_INTERSECTION_LINE_PARAMS =(1 << 1)
 
static final int VLT_DIRECTIONAL = 0
 
static final int VLT_FRUSTRUM = 1
 
static final int VM_VEWMPR = 0
 
static final int VM_VIEW3D = 1
 

Detailed Description

Utility class for functions that may be helpful when manipulating 3D volumes.

Member Function Documentation

static void com.fovia.hdrc.utils.hdrc3DHelpers.clipLineToPlane ( VECTOR3D  line[],
PLANEEQF  plane 
)
static

Clips the line to the plane. If the line is completely on the back side of the plane, the function will set the value of line[0] and line[1] to null.

Parameters
lineArray of length 2 that contains the two points for the line segment.
planeThe plane to clip to.

Referenced by com.fovia.hdrc.utils.hdrc3DHelpers.clipLineToPlanes().

static void com.fovia.hdrc.utils.hdrc3DHelpers.clipLineToPlanes ( VECTOR3D  line[],
PLANEEQF  planes[] 
)
static
static VECTOR3D [] com.fovia.hdrc.utils.hdrc3DHelpers.clipLineToRectangle ( VECTOR3D  line[],
VECTOR3D  rect[] 
)
static

While it takes inand returns 3D vectors, this is a purely 2D function. Only X and Y are considered in calculations. null is returned if the line does not intersect with the rectangle. Note that this function will only work with axis-aligned rectangles. If you're rect isn't axis aligned, either write a new function or make it axis aligned via rotation.

Parameters
lineTwo points on the line in question.
rectTwo points that define a rectangle. The ordering of the points should be top-left then bottom-right.
Returns
VECTOR3D[]
static boolean com.fovia.hdrc.utils.hdrc3DHelpers.cutPlaneAffectsVolume ( PLANEEQF  plane,
VECTOR3D  vbp[],
double  fudgeFactor 
)
static

Cut plane use has a performance penalty if none of the volume is clipped. Use this function to verify that a cut plane is actually doing something.

Parameters
planeThe plane to test
vbpVolume box points for the volume. See getVolumeBoxPoints().
fudgeFactorTolerance for determining if the cut plane is outside the volume. Greater values let cut planes closer to the volume be ignored
Returns

References com.fovia.hdrcsrv.PLANEEQF.a, com.fovia.hdrcsrv.PLANEEQF.b, com.fovia.hdrcsrv.PLANEEQF.c, com.fovia.hdrcsrv.PLANEEQF.d, com.fovia.hdrcsrv.VECTOR3D.x, com.fovia.hdrcsrv.VECTOR3D.y, and com.fovia.hdrcsrv.VECTOR3D.z.

static RENDER_PARAMS com.fovia.hdrc.utils.hdrc3DHelpers.DICOMRefToFovia ( hdrcDICOMImageDesc  desc,
double  spacingX,
VECTOR3D  volumeOffset 
)
static
static double com.fovia.hdrc.utils.hdrc3DHelpers.distanceToSlabCenter ( RENDER_PARAMS  rp,
VOLUME_DATA_PARAMS  vdp 
)
static
static void com.fovia.hdrc.utils.hdrc3DHelpers.drawObscuredLines ( Graphics  g,
hdrcRenderEngineContext  rec,
VECTOR3D  lines[][],
int  pixelsPerPoint[],
Color  visibleColor,
Color  obscuredColor,
float  zoom,
double  spacingX,
MATRIX44D  transform,
SIZE  imgSize,
boolean  bBehindPPVisible 
)
static

Draws the lines specified taking visibility into consideration.

Parameters
gGraphics context
recRender engine in question
linesArray of point arrays that specify lines.
pixelsPerPointThe lines will be broken up to satisfy this number of pixels per point so that opacity information is precise.
visibleColorThe color of the line where it is visible.
obscuredColorThe color of the line where it is invisible.
zoomThe current zoom level of the engine.
spacingXThe spacing in the X direction for the data set.
transformThe current transform on the engine.
imgSizeThe current render image size.
bBehindPPVisibleShould points behind the projection plane be visible?

References com.fovia.hdrcsrv.hdrcDefines.RT_PARALLEL.

static void com.fovia.hdrc.utils.hdrc3DHelpers.drawObscuredLines ( Graphics  g,
hdrcRenderEngineContext  rec,
VECTOR3D  lines[][],
int  pixelsPerPoint[],
Color  visibleColor,
Color  obscuredColor,
float  zoom,
double  spacingX,
MATRIX44D  transform,
SIZE  imgSize,
boolean  bBehindPPVisible,
int  renderType,
double  viewAngle 
)
static
static void com.fovia.hdrc.utils.hdrc3DHelpers.drawOrientationCube ( Graphics  g,
Color  textCol,
Color  bgCol,
int  offsX,
int  offsY,
int  width,
int  height,
RENDER_PARAMS  rp 
)
static

Draws an orientation cube with the specified graphics context.

Parameters
gGraphics context to use for drawing.
textColColor of the text on the cube.
bgColColor of the cube faces.
offsXOffset in context to draw cube.
offsYOffset in context to draw cube.
widthWidth of cube.
heightHeight of cube.
rpCurrent state of the render control we wish to represent.

References com.fovia.hdrcsrv.RENDER_PARAMS.Transform, com.fovia.hdrcsrv.VECTOR3D.x, com.fovia.hdrcsrv.VECTOR3D.y, and com.fovia.hdrcsrv.VECTOR3D.z.

static hdrcDICOMImageDesc com.fovia.hdrc.utils.hdrc3DHelpers.foviaRefToDICOM ( RENDER_PARAMS  rp,
double  spacingX,
VECTOR3D  volumeOffset 
)
static
static String com.fovia.hdrc.utils.hdrc3DHelpers.getBiasNameMedical ( VECTOR3D  dir)
static

Really only a sample function. You'll probably want to implement something like this but more tailored to your application.

Parameters
dirVECTOR3D
Returns
String

References com.fovia.hdrc.utils.hdrc3DHelpers.getContributions(), com.fovia.hdrc.utils.hdrc3DHelpers.getHasSecondaryBias(), com.fovia.hdrc.utils.hdrc3DHelpers.getPrimaryBias(), and com.fovia.hdrc.utils.hdrc3DHelpers.getSecondaryBias().

static VECTOR3D com.fovia.hdrc.utils.hdrc3DHelpers.getContributions ( VECTOR3D  vec)
static

Each component of the return vector will be a number from 0-1 describing the contribution of that component in the vector percentage-wise

Parameters
vecVECTOR3D
Returns
VECTOR3D

References com.fovia.hdrcsrv.VECTOR3D.x, com.fovia.hdrcsrv.VECTOR3D.y, and com.fovia.hdrcsrv.VECTOR3D.z.

Referenced by com.fovia.hdrc.utils.hdrc3DHelpers.getBiasNameMedical().

static double com.fovia.hdrc.utils.hdrc3DHelpers.getConvertedViewAngle ( SIZE  imgSize,
double  viewAngle 
)
static
static Vector<VECTOR3D> com.fovia.hdrc.utils.hdrc3DHelpers.getCurvedLine ( VECTOR3D  points[],
int  pixelsPerSubdiv 
)
static

Placeholder()

References com.fovia.hdrcsrv.VECTOR3D.length().

static boolean com.fovia.hdrc.utils.hdrc3DHelpers.getHasSecondaryBias ( double  threshold,
int  primaryBias,
VECTOR3D  contributions 
)
static

Determines if you should show a secondary bias based upon the threshold you supply. A higher threshold will make the second bias more likely.

Parameters
thresholddouble
primaryBiasValue returned by getPrimaryBias()
contributionsValue returned by getContributions()
Returns
boolean

References com.fovia.hdrcsrv.VECTOR3D.x, com.fovia.hdrcsrv.VECTOR3D.y, and com.fovia.hdrcsrv.VECTOR3D.z.

Referenced by com.fovia.hdrc.utils.hdrc3DHelpers.getBiasNameMedical().

static VECTOR3D com.fovia.hdrc.utils.hdrc3DHelpers.getLineNormal ( VECTOR3D  points[],
VECTOR3D  look,
int  startIdx,
int  endIdx,
double  delta 
)
static
static VECTOR3D [] com.fovia.hdrc.utils.hdrc3DHelpers.getLineOfIntersection ( PLANEEQF  p1,
PLANEEQF  p2 
)
static

Adapted from a web site by Paul Bourke http://local.wasp.uwa.edu.au/~pbourke/geometry/planeplane/

Do note that this is a relatively expensive operation. It should not be done thousands of times per frame.

Parameters
p1PLANEEQF
p2PLANEEQF
Returns
VECTOR3D[]

References com.fovia.hdrcsrv.PLANEEQF.a, com.fovia.hdrcsrv.PLANEEQF.b, com.fovia.hdrcsrv.PLANEEQF.c, com.fovia.hdrcsrv.PLANEEQF.d, com.fovia.hdrcsrv.VECTOR3D.scale(), com.fovia.hdrcsrv.VECTOR3D.x, com.fovia.hdrcsrv.VECTOR3D.y, and com.fovia.hdrcsrv.VECTOR3D.z.

static VECTOR3D com.fovia.hdrc.utils.hdrc3DHelpers.getLineTangent ( VECTOR3D  points[],
int  startIdx,
int  endIdx,
double  delta 
)
static
static double com.fovia.hdrc.utils.hdrc3DHelpers.getPercentageIntoVolume ( MATRIX44D  transform,
VECTOR3D  volumeBoxPoints[] 
)
static

Returns the percentage into the volume of the current projection plane. 0% is when the projection plane is moved to include the backmost point in the volume box. 100% is when the projection plane is moved to include the frontmost point in the volume box. The returned result is not constrained to [0...100].

Parameters
transformMATRIX44D
volumeBoxPointsVOLUME_DATA_PARAMS
Returns
double

Referenced by com.fovia.hdrc.utils.hdrc3DHelpers.getPercentageIntoVolume().

static double com.fovia.hdrc.utils.hdrc3DHelpers.getPercentageIntoVolume ( VECTOR3D  loc,
VECTOR3D  vecZ,
VECTOR3D  volumeBoxPoints[] 
)
static
static double com.fovia.hdrc.utils.hdrc3DHelpers.getPercentageIntoVolume ( MATRIX44D  transform,
boolean  bUseSlabCenter,
double  slabThickness,
VECTOR3D  volumeBoxPoints[] 
)
static
static double com.fovia.hdrc.utils.hdrc3DHelpers.getPercentageIntoVolume ( VECTOR3D  loc,
VECTOR3D  vecZ,
boolean  bUseSlabCenter,
double  slabThickness,
VECTOR3D  volumeBoxPoints[] 
)
static

Placeholder()

static double com.fovia.hdrc.utils.hdrc3DHelpers.getPixelsPerMillimeter ( double  spacingX,
double  zoom 
)
static

Returns the pixels per millimeter given a volume spacing and current zoom.

Parameters
spacingX
zoom
Returns

Referenced by com.fovia.hdrc.utils.hdrc3DHelpers.getPointLocation(), and com.fovia.hdrc.utils.hdrc3DHelpers.renderImageLoc2VolumeCoordinates().

static PLANEEQF com.fovia.hdrc.utils.hdrc3DHelpers.getPlaneEquation ( VECTOR3D  pt1,
VECTOR3D  pt2,
VECTOR3D  pt3 
)
static

Given three points in 3D space, this will return the plane equation for the plane they all lie upon.

Parameters
pt1
pt2
pt3
Returns

References com.fovia.hdrcsrv.VECTOR3D.x, com.fovia.hdrcsrv.VECTOR3D.y, and com.fovia.hdrcsrv.VECTOR3D.z.

Referenced by com.fovia.hdrc.utils.hdrc3DHelpers.getVolumeBoxPlanes().

static PLANEEQF com.fovia.hdrc.utils.hdrc3DHelpers.getPlaneEquation ( MATRIX44D  transform)
static

Returns the plane equation for a given projection plane position.

Parameters
transform
Returns

References com.fovia.hdrcsrv.PLANEEQF.b, and com.fovia.hdrcsrv.PLANEEQF.d.

static VECTOR3D com.fovia.hdrc.utils.hdrc3DHelpers.getPointAtPercentageIntoVolume ( double  pct,
VECTOR3D[]  volumeBoxPoints,
RENDER_PARAMS  rp 
)
static
static VECTOR3D com.fovia.hdrc.utils.hdrc3DHelpers.getPointAtPercentageIntoVolume ( double  pct,
boolean  bUseSlabCenter,
VECTOR3D[]  volumeBoxPoints,
RENDER_PARAMS  rp 
)
static

Placeholder()

static VECTOR3D com.fovia.hdrc.utils.hdrc3DHelpers.getPointLocation ( hdrcIRenderParamsReceiver  control,
int  x,
int  y 
) throws IOException
static
static VECTOR3D com.fovia.hdrc.utils.hdrc3DHelpers.getPointOfIntersection ( PLANEEQF  p1,
PLANEEQF  p2,
PLANEEQF  p3 
)
static

Placeholder()

static int com.fovia.hdrc.utils.hdrc3DHelpers.getPrimaryBias ( VECTOR3D  contributions)
static

Returns the primary direciton that the vector is pointing.

Parameters
contributionsValue returned by getContributions();
Returns
int

References com.fovia.hdrcsrv.VECTOR3D.x, com.fovia.hdrcsrv.VECTOR3D.y, and com.fovia.hdrcsrv.VECTOR3D.z.

Referenced by com.fovia.hdrc.utils.hdrc3DHelpers.getBiasNameMedical().

static int com.fovia.hdrc.utils.hdrc3DHelpers.getSecondaryBias ( int  primaryBias,
VECTOR3D  contributions 
)
static

Returns the second most significant axis

Parameters
primaryBiasThe value returned by getPrimaryBias()
contributionsThe value returned by getContributions()
Returns
int

References com.fovia.hdrcsrv.VECTOR3D.x, com.fovia.hdrcsrv.VECTOR3D.y, and com.fovia.hdrcsrv.VECTOR3D.z.

Referenced by com.fovia.hdrc.utils.hdrc3DHelpers.getBiasNameMedical().

static PLANEEQF [] com.fovia.hdrc.utils.hdrc3DHelpers.getVolumeBoxPlanes ( VECTOR3D  vbPoints[])
static

Converts the points returned by getVolumeBoxPoints() to plane equations for each face of the box.

Parameters
vbPoints

References com.fovia.hdrc.utils.hdrc3DHelpers.getPlaneEquation().

static VECTOR3D [] com.fovia.hdrc.utils.hdrc3DHelpers.getVolumeBoxPoints ( VOLUME_DATA_PARAMS  vdp)
static

The order of point is as follows: -X,-Y,-Z / +X,-Y,-Z / -X,+Y,-Z / +X,+Y,-Z / -X,-Y,+Z / +X,-Y,+Z / -X,+Y,+Z / +X,+Y,+Z

Note: This function is not intended to be in real time code. Cache it if you'll be using it often. It always returns the same values for the same dataset anyway.

Parameters
vdpVOLUME_DATA_PARAMS
Returns
VECTOR3D[]

References com.fovia.hdrcsrv.VOLUME_DATA_PARAMS.Dimension, com.fovia.hdrcsrv.VECTOR3L.x, com.fovia.hdrcsrv.VECTOR3L.y, and com.fovia.hdrcsrv.VECTOR3L.z.

static VECTOR3D com.fovia.hdrc.utils.hdrc3DHelpers.getVolumeOffset ( VECTOR3D  firstSliceLoc,
VECTOR3D  lastSliceLoc,
VOLUME_DATA_PARAMS  vdp 
)
static

See overload of this function getVolumeOffset(boolean,VECTOR3D,VECTOR3D,VOLUME_DATA_PARAMS). This version calls that version direction with bCenterOfSliceIsSliceLocation set to true.

Parameters
firstSliceLoc
lastSliceLoc
vdp
Returns
static VECTOR3D com.fovia.hdrc.utils.hdrc3DHelpers.getVolumeOffset ( boolean  bCenterOfSliceIsSliceLocation,
VECTOR3D  firstSliceLoc,
VECTOR3D  lastSliceLoc,
VOLUME_DATA_PARAMS  vdp 
)
static

Returns the offset of the volume center from the origin in the patient system of coordinates. Since all Fovia renderings set the center of the volume to be 0,0,0, adding this value to any point in Fovia's coordinates will return the coordinate as it should be in the DICOM spec. Subtracting this value from the point will reverse the action.

Parameters
bCenterOfSliceIsSliceLocationIf true, the slice location indicates the center of the slice. If false, the upper-left of the image is the location (DICOM standard).
firstSliceLocDICOM Image Location tag for the first slice in the volume
lastSliceLocDICOM Image Location tag for the last slice in the volume
vdp
Returns
static double com.fovia.hdrc.utils.hdrc3DHelpers.getZoomForPixelsPerMillimeter ( double  spacingX,
double  pixelsPerMilli 
)
static

Returns the zoom needed on the current volume to set the specified pixels per millimeter.

Parameters
spacingX
pixelsPerMilli
Returns
static VECTOR3D com.fovia.hdrc.utils.hdrc3DHelpers.intersectLineWithPlane ( VECTOR3D  pt1,
VECTOR3D  pt2,
PLANEEQF  pl,
VECTOR3D  plPt 
)
static

Determines the point where a line intersects a plane. Returns null if the line is parallel to the plane.

Parameters
pt1First point on the line
pt2Second point on the line
plPlane to intersect with
plPtA point that exists on the plane
Returns
VECTOR3D

References com.fovia.hdrcsrv.PLANEEQF.a, com.fovia.hdrcsrv.PLANEEQF.b, and com.fovia.hdrcsrv.PLANEEQF.c.

static boolean com.fovia.hdrc.utils.hdrc3DHelpers.isPointVisible ( VECTOR3D  point,
RAYSTOPINFO  rsi,
MATRIX44D  transform,
boolean  bBehindPPVisible 
)
static

Pass in a 3D point, the results of a shootray from the point on the screen that is a result of volume2ProjectionPlane() from the same 3D point, and the current transform for the projection plane.

References com.fovia.hdrcsrv.VECTOR3D.dot(), com.fovia.hdrcsrv.RAYSTOPINFO.VoxelValue, and com.fovia.hdrcsrv.RAYSTOPINFO.vtx.

static boolean com.fovia.hdrc.utils.hdrc3DHelpers.pointInPolygon ( VECTOR3D  polygon[],
VECTOR3D  point 
)
static

It's 3D parameters, but only the X and Y dimensions are considered

Adapted from code on http://local.wasp.uwa.edu.au/~pbourke/geometry/insidepoly/ Article by Paul Bourke. Algorithm by Randolph Franklin

Parameters
polygonVECTOR3D[]
pointVECTOR3D
Returns
boolean

References com.fovia.hdrcsrv.VECTOR3D.length(), com.fovia.hdrcsrv.VECTOR3D.x, and com.fovia.hdrcsrv.VECTOR3D.y.

static boolean com.fovia.hdrc.utils.hdrc3DHelpers.pointOnLine2D ( VECTOR3D  line[],
VECTOR3D  point,
double  tolerance 
)
static

Placeholder()

References com.fovia.hdrcsrv.VECTOR3D.y.

static VECTOR3D com.fovia.hdrc.utils.hdrc3DHelpers.renderImageLoc2VolumeCoordinates ( int  x,
int  y,
MATRIX44D  transform,
SIZE  imgSize,
float  zoom,
VOLUME_DATA_PARAMS  vdp 
)
static
static void com.fovia.hdrc.utils.hdrc3DHelpers.rotatePointAroundVector ( VECTOR3D  pt,
VECTOR3D  axis,
double  rot 
)
static

Rotate the point pt around the vector axis.

Parameters
ptVECTOR3D
axisVECTOR3D
rotdouble

References com.fovia.hdrcsrv.VECTOR3D.x, com.fovia.hdrcsrv.VECTOR3D.y, and com.fovia.hdrcsrv.VECTOR3D.z.

static void com.fovia.hdrc.utils.hdrc3DHelpers.setPercentageIntoVolume ( double  pct,
hdrcIRenderParamsReceiver  control,
VECTOR3D  volumeBoxPoints[] 
) throws IOException
static

Sets the control's projection to be the given percent into the volume box by translating along the current view direction.

Parameters
pct
control
volumeBoxPoints
Exceptions
IOException
static void com.fovia.hdrc.utils.hdrc3DHelpers.setPercentageIntoVolume ( double  pct,
boolean  bUseSlabCenter,
hdrcIRenderParamsReceiver  control,
VECTOR3D  volumeBoxPoints[] 
) throws IOException
static
static VECTOR3D com.fovia.hdrc.utils.hdrc3DHelpers.shootRayToPointInCenterOfView ( hdrcIRenderParamsReceiver  control) throws IOException
static

Placeholder()

static VECTOR3D com.fovia.hdrc.utils.hdrc3DHelpers.shootRayToPointInCenterOfView ( hdrcIRenderParamsReceiver  control,
double  percent 
) throws IOException
static

Placeholder()

References com.fovia.hdrcsrv.RAYSTOPINFO.vtx.

static VECTOR3D com.fovia.hdrc.utils.hdrc3DHelpers.shootRayToPointLocation ( hdrcIRenderParamsReceiver  control,
int  x,
int  y 
) throws IOException
static

Placeholder()

static VECTOR3D com.fovia.hdrc.utils.hdrc3DHelpers.shootRayToPointLocation ( hdrcIRenderParamsReceiver  control,
int  x,
int  y,
double  percent 
) throws IOException
static

Placeholder()

References com.fovia.hdrcsrv.RAYSTOPINFO.vtx.

static void com.fovia.hdrc.utils.hdrc3DHelpers.snapPointsToPlane ( PLANEEQF  plane,
VECTOR3D  points[] 
)
static

Puts all the specified points on the plane by adjusting their location along the plane normal.

Parameters
plane
points

References com.fovia.hdrcsrv.PLANEEQF.a, com.fovia.hdrcsrv.PLANEEQF.b, and com.fovia.hdrcsrv.PLANEEQF.c.

static VECTOR3D com.fovia.hdrc.utils.hdrc3DHelpers.volume2ProjectionPlane ( double  x,
double  y,
double  z,
float  zoom,
double  spacingX,
MATRIX44D  transform,
SIZE  imgSize 
)
static

Converts a 3D point in patient coordinates to a point on the screen. The returned value will have projection plane coordinates for x and y. In z offset from the projection plane is communicated. The extra parameters should be taken directly from the current RENDER_PARAMS, except for spacingX, which is the X spacing from the VOLUME_DATA_PARAMS.

Parameters
xdouble
ydouble
zdouble
zoomfloat
spacingXfloat
transformMATRIX44D
imgSizeSIZE
Returns
VECTOR3D

References com.fovia.hdrc.utils.hdrc3DHelpers.volume2ProjectionPlaneParallel().

Referenced by com.fovia.hdrc.utils.hdrc3DHelpers.drawObscuredLines().

static VECTOR3D com.fovia.hdrc.utils.hdrc3DHelpers.volume2ProjectionPlane ( int  renderType,
double  x,
double  y,
double  z,
float  zoom,
double  spacingX,
MATRIX44D  transform,
SIZE  imgSize,
double  convertedViewAngle 
)
static
static VECTOR3D com.fovia.hdrc.utils.hdrc3DHelpers.volume2ProjectionPlaneParallel ( double  x,
double  y,
double  z,
float  zoom,
double  spacingX,
MATRIX44D  transform,
SIZE  imgSize 
)
static
static VECTOR3D com.fovia.hdrc.utils.hdrc3DHelpers.volume2ProjectionPlanePerspective ( double  x,
double  y,
double  z,
MATRIX44D  transform,
SIZE  imgSize,
double  convertedViewAngle 
)
static