; ==============================================================================
;
; Imaging & Visualization Toolkit (IVT) configuration file
; Copyright (c) 2001 Siemens Corporate Research
; All Rights Reserved
;
; This file contains configuration parameters for the Imaging & Visualization
; Toolkit (IVT). IVT will look for this file in the following locations,
; respectively:
; 1) The path and filename defined in an environment variable called
;    IVT_CONFIG_FILE. This allows you to rename this file and place it
;    in any directory you wish.
; 2) The current directory where the application is running.
; 3) The default Windows directory, which is usually C:\Winnt on
;    Windows NT systems or C:\Windows on Windows 95 systems.
;
; If the file is not found in any of the above locations, IVT will
; use hardcoded default values (the same default values are also
; indicated in the comments below).
;
; Notation used in this file:
;
; [Section Name]
; ParameterName = Value
;
; Where Value can be a number or a character string, optionally delimited
; by double quotes. Comment lines must use a semicolumn as the first character.
; If parameters are invalid or missing, IVT will use hardcoded defaults.
;
; ==============================================================================
; ==============================================================================
;
; Section: IVT
; Purpose: Configuration of IVT system parameters
; Parameters:
;    FileVersion:    Current file version, used for internal compatibility test.
;    ThreadingModel: Threading model to be used by IVT library. 
;                    Values from 1 to 3 can be specified. Default value is 1.
;                    1 - Apartment Threading model. A single and the same thread is
;                                                   allowed to make API calls.
;                          
;                    2 - Free threading model. Multiple threads can access IVT APIs.
;                    3 - No threading model. Applications' responsibility to synchronize
;                                            access to IVT APIs.
;    CubicAmplitudeNormal: This parameter controls the amplification of high frequencies
;                          (i.e. sharpening) in bicubic interpolation when using the
;                          RS2_CUBIC2 and V2_CUBIC2 interpolation modes. Its value ranges
;                          from -3.0 to 0.0, where the value -0.5 is the optimum level of
;                          sharpening, while values less than -0.5 produce more sharpening
;                          and values greater than -0.5 cause more blurring (although values
;                          greater than -0.4 cause a rapid falloff between interpolated
;                          pixels, causing noticeable artifacts at high zoom factors).
;    CubicAmplitudeSharp:  This parameter controls the amplification of high frequencies
;                          in bicubic interpolation when using the RS2_CUBIC3 and V2_CUBIC3
;                          interpolation modes (see description of CubicAmplitudeNormal).
;    CubicAmplitudeVerySharp: This parameter controls the amplification of high frequencies
;                          in bicubic interpolation when using the RS2_CUBIC4 and V2_CUBIC4
;                          interpolation modes (see description of CubicAmplitudeNormal).
;    FilteredDownsampling: Enables filtered downsampling, which eliminates aliasing
;                    in images scaled down by a factor less than 1.0 (when
;                    using bilinear or bicubic interpolation), but requires
;                    much greater processing time. When this parameter is set
;                    to TRUE, images are convolved with an adaptive 3x3 smoothing
;                    kernel for scaling factors > 1.0 <= 0.5, while they are averaged
;                    with a variable size box filter for scaling factors < 0.5. This
;                    filtering step prior to resampling greatly reduces aliasing artifacts.
;    ForceBicubic:   When this parameter is TRUE, bilinear interpolation is forced
;                    to be bicubic interpolation instead. The ForcedCubicAmplitude
;                    parameter specifies the amplitude of the bicubic interpolation.
;                    Bilinear interpolation suffers from noticeable aliasing artifacts,
;                    in particular for scaling factors between 0.5 and 1.5. By enabling
;                    this parameter, the artifacts can be greatly reduced with a sharp
;                    cubic convolution amplitude.
;    ForcedCubicAmplitude: This parameter controls the amplification of high frequencies
;                    in bicubic interpolation when the ForceBicubic parameter is TRUE.
;                    The default value of -1.0 is ideal for reducing resampling artifacts,
;                    in particular for scaling factors between 0.5 and 1.5.
;    SMPEnabled:     Enable/Disables symmetric multi-processing, when available.  When
;                    set to 1 (TRUE), symmetric multi-processing is used when multi-processors
;                    are available.  When set to 0 (FALSE), symmetric multi-processing is
;                    not used.  
;    DelayedMappingThreshold: This flag is used when IVT needs to resample the volume.  This
;                    allows IVT to delay the locking of internally created resampled volume into
;                    process virtual memory until slice data is actually touched. 
;                    This value specifies the minimum volume size in bytes for which such a
;                    delayed mapping will be performed. For any volume of size less then that
;                    all the slices will be mapped form the beginning.    
;                    When set to 0, deleyedMapping is mapping is disabled, meaning the entire
;                    resampled volume is locked into memory at the begining (old behavior).
;   IPPEnabled:     This parameter enables or disables the use of IPP libraries in IVT resampling 
;                   use cases. If enabled, IVT uses IPP libraries to do resampling otherwise IVT 
;                   uses its own implementation.
; Values:
;    FileVersion              (FLT32)   range: N/A, default = 1.0
;    CubicAmplitudeNormal     (FLT32) range: -3.0 to 0.0, default -0.5
;    CubicAmplitudeSharp      (FLT32) range: -3.0 to 0.0, default -0.75
;    CubicAmplitudeVerySharp  (FLT32) range: -3.0 to 0.0, default -1.0
;    FilteredDownsampling     (BOOL) range: 0 (FALSE) to 1 (TRUE), default = 0 (FALSE)
;    ForceBicubic             (BOOL) range: 0 (FALSE) to 1 (TRUE), default = 0 (FALSE)
;    ForcedCubicAmplitude     (FLT32) range: -3.0 to 0.0, default -1.0
;    SMPEnabled               (BOOL)  range: 0 (FALSE) to 1 (TRUE), default = 1 (TRUE)
;    DelayedMappingThreshold  (UINT64) range: 0 to max. value of UINT64, default = 10485760 (bytes)
;    IPPEnabled               (BOOL)  range: 0 (FALSE) to 1 (TRUE), default = 1 (TRUE)
; ==============================================================================
[IVT]
FileVersion = 1.0
ThreadingModel=3
CubicAmplitudeNormal = -0.5
CubicAmplitudeSharp = -0.75
CubicAmplitudeVerySharp = -1.0
FilteredDownsampling = FALSE
ForceBicubic = FALSE
ForcedCubicAmplitude = -1.0
SMPEnabled = TRUE
DelayedMappingThreshold = 10485760
IPPEnabled = TRUE

; ==============================================================================
;
; Section: Default Material 
; Purpose: Configuration of Default Material parameters 
; Parameters:
;    Ambient:          The amount of light coming from an object regardless
;                      of the position of the light and the viewer.
;    Diffuse:          The amount of light reflection generated by a light
;                      shining on an object surface, radiating outward in
;                      a uniform and view independent manner.
;    Specular:         The amount of light that reflects off an object in
;                      the way that a mirror reflects an image. This type of
;                      reflection is view dependent, and it is associated
;                      with the specular highlights of an object.
;    Shininess:        This parameter controls the size and brightness of the
;                      specular highlights. You can assign a number in the
;                      range 1.0 to 128.0: the higher the value, the smaller
;                      and brighter (more focused) the highlight.
;
; Values:
;    ColorRed             (FLT32)  range: 0.0 to 1.0, default = 1.0
;    ColorGreen           (FLT32)  range: 0.0 to 1.0, default = 1.0
;    ColorBlue            (FLT32)  range: 0.0 to 1.0, default = 1.0
;    Ambient              (FLT32)  range: 0.0 to 1.0, default = 0.25
;    Diffuse              (FLT32)  range: 0.0 to 1.0, default = 0.6
;    Specular             (FLT32)  range: 0.0 to 1.0, default = 0.0
;    Shininess            (FLT32)  range: 0.0 to 128.0, default = 0.0
;
; ==============================================================================
[Default Material]
Ambient = 0.25
Diffuse = 0.6
Specular = 0.0
Shininess = 0.0

; ==============================================================================
;
; Section: ShearWarp
; Purpose: Configuration of IVT shear-warp plugin parameters
; Parameters:
;    SubsampledSize: Maximum size of the subsampled volume used for high speed,
;                    low quality volume renderings.
;    ClippingMPR:    A boolean flag to enable/disable clipping with texture
;                    mapped MPR. If FALSE, volume clipping boxes are rendered
;                    as flat shaded planes. If TRUE, they are rendered as
;                    texture-mapped planes showing the grayscale voxel values
;                    on the surface of the plane. This texture mapping feature
;                    accesses the original grayscale voxel values, and therefore
;                    uses more memory. 
; Values:
;    SubsampledSize        (SINT32) range: 32 to 256, default = 128
;    ClippingMPR           (BOOL)   range: 0 (FALSE) to 1 (TRUE), default = 0 (FALSE)
;
; ==============================================================================
[ShearWarp]
SubsampledSize = 128
ClippingMPR = FALSE

; ==============================================================================
;
; Section: MPR
; Purpose: Configuration of IVT MPR plugin parameters
; Parameters:
;    FastMPRTimeout: Maximum time (in milliseconds) during which the system will use
;                    a very fast MPR algorithm without memory management. If the
;                    algorithm fails to produce an image within the specified time,
;                    it will switch to a slower algorithm which uses memory management.
;                    Setting this parameter to 0 completely bypasses the fast algorithm
;                    and forces the system to always use memory-managed MPR (up to 8 fps).
;                    The fast algorithm (up to 30 fps) is ideal when the volume data
;                    fits entirely in physical memory, but if the data is larger than
;                    the available physical memory this algorithm could take forever
;                    to produce an MPR image, because of excessive disk paging. When
;                    the fast algorithm is slowed down by paging, this parameter allows
;                    to automatically detect this delay and switch to an algorithm
;                    which minimizes disk paging (performance will then vary depending
;                    on disk transfer speed, usually 10 Mb of data per second).
;                    Once the slower algorithm is activated, it remains into effect
;                    until the data can be rendered again at a faster rate.
;
;    HTEnabled:		 Flag indicating whether internal SMP processing will try to utilize
;					 hyperthreading number of threads or only up to the number of phyical
;                    CPUs.
;
; Values:
;    FastMPRTimeout        (SINT32) range: 0 to 1000, default = 250
;    HTEnabled:            (BOOL) range: 0 (FALSE) to 1 (TRUE), default = 0 (FALSE)
;
; ==============================================================================
[MPR]
FastMPRTimeout = 250
HTEnabled = FALSE

; ==============================================================================
;
; Section: ScrollMPR
; Purpose: Configuration of IVT Scroll MPR plugin parameters
; Parameters:
;
;    HTEnabled:		 Flag indicating whether internal SMP processing will try to utilize
;					 hyperthreading number of threads or only up to the number of phyical
;                    CPUs.
;
; Values:
;    HTEnabled:            (BOOL) range: 0 (FALSE) to 1 (TRUE), default = 0 (FALSE)
;
; ==============================================================================
[ScrollMPR]
HTEnabled = FALSE

; ==============================================================================
;
; Section: Gl3DTex
; Purpose: Configuration parameters for the standard IVT 3D texture based renderer.
; Parameters:
;    MaxTexelsX: The maximum number of texels used for the X dimension of a volume.
;    MaxTexelsY: The maximum number of texels used for the Y dimension of a volume.
;    MaxTexelsZ: The maximum number of texels used for the Z dimension of a volume.
; Values:
;    MaxTexelsX:           (SINT32) range: 64 to 512, default = 256
;    MaxTexelsY:           (SINT32) range: 64 to 512, default = 256
;    MaxTexelsZ:           (SINT32) range: 64 to 512, default = 256
; ==============================================================================
[Gl3DTex]
MaxTexelsX = 256
MaxTexelsY = 256
MaxTexelsZ = 256

; ==============================================================================
;
; Section: GlNv2x
; Purpose: Configuration parameters for the IVT OpenGL based renderer for nVidia 2x hardware.
; Parameters:
;    MaxTexelsX: The maximum number of texels used for the X dimension of a volume.
;    MaxTexelsY: The maximum number of texels used for the Y dimension of a volume.
;    MaxTexelsZ: The maximum number of texels used for the Z dimension of a volume.
;    Quantize8: Indicator if data is quantized to 8-bits within the renderer.
;               This option values can be used to improve performance & reduce the
;               amount of texture required (a critical resource) at the expense
;               of quality. The difference is often hard to discern.
;    HighQualityGradients: Indicator if high quality gradients (Sobel) are to be
;               used instead of standard gradient (central difference). High
;               quality gradients yield better results, but are more computationally
;               expensive.
; Values:
;    MaxTexelsX:           (SINT32) range: 64 to 512, default = 256
;    MaxTexelsY:           (SINT32) range: 64 to 512, default = 256
;    MaxTexelsZ:           (SINT32) range: 64 to 512, default = 256
;    Quantize8:            (BOOL)   default = TRUE
;    HighQualityGradients: (BOOL)   default = FALSE

; ==============================================================================
[GlNv2x]
MaxTexelsX = 256
MaxTexelsY = 256
MaxTexelsZ = 256
Quantize8 = FALSE
HighQualityGradients = FALSE

; ==============================================================================
;
; Section: GlNvBrick
; Purpose: Configuration parameters for the IVT OpenGLbricking renderer
;          for nVidia 4x hardware and later.
; Parameters:
;    HqTexBudget: The maximum amount of memory that can be allocated for high quality texture.
;                 The value is expressed in megabytes (where 1 MB = 1024 B).
;    LqTexBudget: The maximum amount of memory that can be allocated for lowquality texture.
;                 The value is expressed in megabytes (where 1 MB = 1024 B).
;    LqTexQuantize8: An indication if the low quality texture is quantized to 8-bits.
;    NonContigLoad:  The threshold at which input slice data  is copied to an internal buffer
;                    to ensure it is contiguous. Loading slice data is more efficient when
;                    input slice data is contiguous. An intermediate internal buffer is used
;                    when the specified threshold is less than the ratio of the number of
;                    to the noncontiguous slices to the number of slices.
;    Quantize8: Indicator if data is quantized to 8-bits within the renderer.
;               This option values can be used to improve performance & reduce the
;               amount of texture required (a critical resource) at the expense
;               of quality. The difference is often hard to discern.
; Values:
;    HqTexBudget:          (FLT64) range: 1.0 to 128.0, default = 32.0
;    LqTexBudget:          (FLT64) range: 1.0 to 128.0, default = 64.0
;    LqTexQuantize8:       (BOOL)  default = TRUE 
;    NonContigLoad:        (FLT64) range: 0.0 to 1.0,   default = 0.9
;    Quantize8:            (BOOL)  default = TRUE
[GlNvBrick]
HqTexBudget = 32.0
LqTexBudget = 64.0
Quantize8 = TRUE


; ==============================================================================
;
; Section: Memory Manager
; Purpose: Configuration parameters for the management of physical memory
;          (RAM) and disk space used by memory-mapped objects.
;
; Parameters:
;    Mode:               Local setting that defines the mode of operation.
;                        If the default value of 0 is set, the memory manager
;                        operates in central service mode. If the mode is set to
;                        1 the memory manager operates in No-Server mode. All
;                        other values are reserved for internal use.
;    Service:            Defines a socket service number, which the memory manager
;                        should bind to. If the default value is 12997.
;    OptimizeRam:        Enables/disables optimization. When set to 1 (TRUE),
;                        the disk paging of memory-mapped buffers in and out of
;                        physical memory is optimized. When set to 0 (FALSE),
;                        disk paging is entirely up to operating system.
;    MinRamThreshold:    If OptimizeRam is enabled, this parameter specifies the
;                        minimum amount of free physical memory (in MB), which
;                        will cause the system to begin flushing memory-mapped
;                        objects out of physical memory. The default value is 8.
;    TargetRecoveredRam: If OptimizeRam is enabled, this parameter specifies the
;                        target amount of free physical memory (in MB), which will
;                        be recovered when memory flushing is triggered. The
;                        default value is 32.
;    LowSpaceTestFreq:   Number of seconds indicating how frequently the memory
;                        manager checks the available disk space. The default
;                        value is 60.
;    TotMemMapDisks:     Total number of disks used for memory-mapping. For each
;                        disk 1 to TotMemMapDisks, a "MMDisk_#" section must be
;                        declared.
;    DynamicMapping:     Enable/disable dynamic mapping. When set to 1 (TRUE),
;					     the on demand mapping/unmapping is activated, ie. memory
;					     manager can unmap the buffer out of virtual address space if no
;						 application is using the buffer. When set to 0 (FALSE),
;                        the on demand mapping/unmapping is disabled. ie. the mapped
;						 buffer stays in virtual address space until application
;						 deletes the buffer.
; Values:
;    Mode               (SINT32)  range: 0 to 1, default = 0
;    Service            (SINT32)  range: 0 to 65535, default = 12997
;    OptimizeRam        (BOOL32)  range: 0 (FALSE) to 1 (TRUE), default = 1 (TRUE)
;    MinRamThreshold    (SINT32)  range (Mb): 1 to total physical memory, default = 8
;    TargetRecoveredRam (SINT32)  range (Mb): MinRamThreshold to total physical memory,
;                                             default = 32
;    LowSpaceTestFreq   (SINT32)  range: 1 to 60, default = 60
;    TotMemMapDisks     (SINT32)  range: 1 to 100, default = 1
;	 DynamicMapping		(BOOL32)  range: 0 (FALSE) to 1 (TRUE), default = 1 (TRUE)
;
; ==============================================================================
[Memory Manager]
Mode = 1
Service = 12997
OptimizeRam = TRUE
MinRamThreshold = 8
TargetRecoveredRam = 32
MinDiskThreshold = 0.1
TargetRecoveredDisk = 0.2
LowSpaceTestFreq = 60
TotMemMapDisks = 1
DynamicMapping = TRUE

; ==============================================================================
;
; Section: MMDisk_n (where "n" ranges from 1 to TotMemMapDisks)
; Purpose: Configuration parameters for the management of disks being
;          used by memory-mapped objects. 
; Parameters:
;    Path:                 Pathname of the disk and directory where memory
;                          mapped files can be created
;    MaxDiskSpaceUsed:     Maximum amount of disk space which will be used for
;                          memory mapping
;    FreeSpaceLimit:       The amount of free disk space which should be
;                          left available on the disk
;
; Values:
;    Path                 (CHAR*)   range: N/A, default = OS_DEFAULT
;
;    If the specified pathname is invalid, the default path is used instead.
;    When OS_DEFAULT is used instead of a specific pathname, the system
;    determines the pathname as follows:
;        1. The path specified by the TMP environment variable.
;        2. The path specified by the TEMP environment variable,
;           if TMP is not defined.
;        3. The Windows directory, if both TMP and TEMP are not defined.

;    MaxDiskSpaceUsed     (FLT32)   range: 0.0 to 1.0, default = 1.0
;    FreeSpaceLimit       (FLT32)   range: 0.0 to 0.025, default = 0.005
;
;    The disk space units range from 0.0 to 1.0, where 1.0 represents
;    the maximum capacity of the specified disk (normalized values).
;
; ==============================================================================
[MMDisk_1]
Path = OS_DEFAULT
MaxDiskSpaceUsed = 0.95
FreeSpaceLimit = 0.025

; ==============================================================================
;
; Section: Plugins
; Purpose: Pathname of the various plugins to be loaded by IVT. The plugin DLLs
;          are loaded at the time the IVT library is initialized.
; Parameters:
;    PluginName: An unique string identifying the plugin.
;    
; Values:
;    Path                 (CHAR*)   range: N/A, default = NULL
;
;
; ==============================================================================
[Plugins]
;RayCast=ivtRayCastPlugin.dll
Mpr=ivtMprPl.dll
;ShearWarp=ivtShearWarpPlugin.dll
;Gl3DTex=ivtGl3DTexPlugin.dll
;GlNv2x=ivtGlNv2xPlugin.dll
;GlNv3x=ivtGlNv3xPlugin.dll
;GlNvBrick=ivtGlNvBrickPlugin.dll
;VolPro=ivtVolumePro1000Plugin.dll
;ScrollMpr=ivtScrollMprPlugin.dll
;VolHistogram=ivtVolHistogramPlugin.dll
;VolEditor=ivtVolEditorPlugin.dll
;RigidRegistration=ivtMIRegistrationPlugin.dll
; ==============================================================================
;
; Section: Debug Plugins
; Purpose: Pathname of the various plugins to be loaded by IVT. The plugin DLLs
;          are loaded at the time the IVT library is initialized.
;          Only Debug version of the DLLs needs to be configured in this section.
; Parameters:
;    PluginName: An unique string identifying the plugin.
;    
; Values:
;    Path                 (CHAR*)   range: N/A, default = NULL
;
;
; ==============================================================================
[Debug Plugins]
;RayCast=ivtRayCastPlugind.dll
Mpr=ivtMprPlugind.dll
;ShearWarp=ivtShearWarpPlugind.dll
;Gl3DTex=ivtGl3DTexPlugind.dll
;GlNv2x=ivtGlNv2xPlugind.dll
;GlNv3x=ivtGlNv3xPlugind.dll
;GlNvBrick=ivtGlNvBrickPlugind.dll
;VolPro=ivtVolumePro1000Plugind.dll
;ScrollMpr=ivtScrollMprPlugind.dll
;VolHistogram=ivtVolHistogramPlugind.dll
;VolEditor=ivtVolEditorPlugind.dll
;RigidRegistration=ivtMIRegistrationPlugind.dll
; ==============================================================================
;
; Section: Storage Device
; Purpose: Configuration perameters for Storage Device component
; Parameters:
;    VirtualAddressSpaceLimit: Virtual address space limit, used by Storage Device component
; Values:
;    VirtualAddressSpaceLimit  (FLT32) range: 0.0 to 1.0. 0 representing using Memory Manager's default 
;							  1.0 representing %100 of total virt.address space. 
;                                                         Default value is 0.95 (%95)
;                                                            
;
; ==============================================================================
[Storage Device]
VirtualAddressSpaceLimit = 0.95

 
















