Virtual Photonics
Classes
Class  Description  

BindableObject 
Implements the INotifyPropertyChanged interface and
exposes a RaisePropertyChanged method for derived
classes to raise the PropertyChange event. The event
arguments created by this class are cached to prevent
managed heap fragmentation.
Adapted from Josh Smith's post:
http://joshsmithonwpf.wordpress.com/2007/08/29/abaseclasswhichimplementsinotifypropertychanged/
Added SetProperty method to simplify set operations.
Changed "RaisePropertyChanged" to "OnPropertyChanged" so as to work with INotifyPropertyChangedPlus,
enabling compatibility with the DependsOn attribute and PropertyDependencyManager classes
 
BindableObjectWithChangeTracking  
DependsOnAttribute 
The DependsOn attribute contains no logic at all, it is just an attribute with a string collection property.
 
EnumExtensions  
EnumHelper  
GlobalConstants 
Class of global constants
 
OpticalProperties 
Describes optical properties needed as input for various
forward solver models.
 
PropertyDependencyManager 
Class to manage dependencies of INotifyPropertyChanged objects, as suggested by Tomas Elison here: http://neilmosafi.blogspot.com/2008/07/isinotifypropertychangedantipattern.html
This class builds a dependency graph the "right" way. It knows for example that if Quantity is changed, TotalPrice has asked to be informed about this. The PropertyDependencyManager listens to the PropertyChanged event for any class that is registered with it and uses the dependency graph to propagate the events the right way.
 
Range T 
Immutable class that specifies a range of values and allows enumeration
 
Tuple TFirst, TSecond  
Tuple TFirst, TSecond, TThird 
Interfaces
Interface  Description  

IChangeTracking 
Interface to enable change tracking in POCO classes
 
IForwardSolver 
Defines contract for a forward solver
 
INotifyPropertyChangedPlus  
IOldForwardSolver 
Old interface for Forward Solver
 
IOldOptimizer 
This is the contract for the inverse solver
 
IOptimizer 
This is the contract for the inverse solver

Enumerations
Enumeration  Description  

AbsorptionCoefficientUnit 
Enum to represent the possible absorption coefficient inputs
 
AbsorptionWeightingType 
Absorption weighting type used within Monte Carlo code
 
AnalyzerType 
Analyzer types
 
BloodConcentrationUnit 
units allowed for blood concentration
 
ChromophoreCoefficientType 
chromophore coefficient types
 
ChromophoreType 
chromophore types
 
ColormapType 
Available choices for mapping grayscale intensity. These names taken from matlab.
 
ConcentrationUnits 
concentration units
 
DependentVariableAxisUnits 
dependent variable axis unit types
 
FluenceSolutionDomainType 
fluence solution domain types
 
ForwardAnalysisType 
forward analysis types
 
ForwardSolverType 
Types of Forward solvers in our gui
 
IndependentVariableAxis 
independent variable axis tyeps
 
IndependentVariableAxisUnits 
independent variable axis unit types. These are the default units used throughout code
 
InputParameterType 
input parameters types used in the Monte Carlo CommandLine application for parameter sweeps
 
InverseFitType 
inverse solution parameter types
 
MapType 
map plot types
 
MeasuredDataType 
measured data type
 
MieScattererType 
Types of Mie Scatterers
 
MolarUnit 
molar unit units
 
OptimizerType 
types of optimization methods
 
PhaseFunctionType 
Phase function type used within the Monte Carlo code
 
PlotNormalizationType 
plot normalization types
 
PlotToggleType 
plot toggle types
 
RandomNumberGeneratorType 
Random number generator types
 
ReflectancePlotType 
reflectance plot types
 
ScalingType 
scaling types
 
ScatteringType 
ScatteringType used within Modeling\Spectroscopy
 
SolutionDomainType 
Reflectance solution domain types
 
SolverType 
solver type. Added to determine which panel is in context LMM
 
SpatialDomainType 
spatialfrequency domain types
 
TimeDomainType 
temporalfrequency domain types
 
TissueType 
tissue types
 
WavelengthUnit 
Enum to represent the possible wavelength and wavenumber inputs
