Programming Reference for VirtualLab Fusion  2026.1
Loading...
Searching...
No Matches
Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
 NVirtualLab
 NProgramming
 CVL_Detectors This class provides methods for evaluating fields
 CVL_Fields This class provides methods for manipulations, evaluations and creation of harmonic fields and fields sets
 CVL_Files This class provides methods for the import and export of fields to bitmaps, text files, or bitmap animations and access to the Microsoft Windows file system
 CVL_GUI This class provides methods for interacting with the VirtualLab main window
 CVL_Math This class provides various mathematical functions
 CVL_OpticalSetups This class provides methods for changing parameters of an Optical Setup (if you want to write your own parameter variation) and for working with Parameter Runs (if you want to vary parameters this way)
 CVL_Propagations This class provides methods for propagating a field through the free space or through components
 CVL_Strings This class provides methods for converting VirtualLab objects to a string
 CVL_Structures This class provides methods for accessing optical interfaces, materials, media, stacks as well as Boundary Responses
 NVirtualLabAPI
 NCore
 NBasicFunctions
 CFileHandlingSupportThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Class providing support methods for loading & importing of files
 NCommon
 CDocumentHistory< T > This generic class provides access to recently used documents
 CGlobalOptionsThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
This class stores all properties which can be set in the Global Options dialog
 CIActiveDocumentHistoryInterface providing access to documents in current VirtualLab session.
 CIDataDisplayInterface providing methods to add documents or messages to FormMain.
 CIDocumentInterface implemented by all VirtualLab documents.
 NExportImport
 CImportSupportFunctionsThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Provides static import functions
 CTextWriterFileHandlerThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Class for writing text to a file in an optimized way. A buffer is used to reduce file accesses, which speeds up the text writing
 NFieldRepresentations
 CAdditionalCAImportParamsThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Struct containing additional parameters for Import of ComplexAmplitude
 CASCIIParamThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Structure that contains parameters for ASCII Export
 CChromaticFieldsSetThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Class for a two-dimensional Chromatic Fields Set
 CChromaticFieldsSet_1DThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Class for a one-dimensional Chromatic Fields Set
 CChromaticFieldsSetBaseThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Abstract base class for a Chromatic Fields Set (can be 1D or 2D)
 CComplexAmplitudeThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
This class represents a complex amplitude of a wave (without time depending part) in a plane or a complex transmission function.
Both X and Y field components are stored. In general all functions are applied to both components.
The ComplexAmplitude class is used to represent globally polarized fields and transmissions, too.
The ComplexAmplitude class contains one or two ComplexField as mathematical representations for complex fields. See manual for details of physical interpretation.
The ComplexAmplitude class can contain some additional information about the radius (distance from the origin) of a spherical phase factor. Using this information field may contain a spherical phase factor that is undersampled. If the radius of the spherical phase factor is known, the whole complex amplitude at every point can be reconstructed. The radius of the spherical phase factor helps to reduce the number of sampling points. Functions that use the ComplexAmplitude class have to take into account this spherical phase information to avoid numerical errors.
Operators ( \(a+b\), \(a-b\), \(a*b\) and \(a/b\)) can be used. Passing \(a\) or \(b\) as Complex is supported. \(a^b\) can be applied for pointwise power function: \(a[x,y] ^ b\) \(b\) must be Complex. Operator \(a|b\) is used for calculation of inner product of two ComplexAmplitudes: \(a|b=\sum _{j=0}^{m}\sum _{i=0}^{n}a_{{i,j}}b_{{i,j}^{\star}}\) ( \(z^{\star}\) means conjugation of complex number.)
 CComplexAmplitudeInterpolationThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
This class contains static member functions for interpolating a complex amplitude to another sampling grid
 CComplexAmplitudePointInterpolationThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
ComplexAmplitudePointInterpolation is a class with static members that are able to interpolate pointwise between different sampling points of a complex amplitude. The point to interpolate is specified in physical coordinates. Additionally for most interpolation methods a non-static optimized version is supported. These functions are optimized for an interpolation on an equidistant grid. Different interpolation methods are supported. For more information see [Lehmann1999]
 CComplexAmplitudeViewThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Class which combines a complex amplitude with view settings
 CHarmonicFieldBaseThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Base class for Harmonic Fields and Harmonic Fields Sets
 CHarmonicFieldModeThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Class to represent a harmonic field mode
 CHarmonicFieldsSetThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Class containing a set of harmonic fields (i.e. of instances of class ComplexAmplitude)
 CHarmonicFieldsSetEvaluationThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Evaluation functions for HarmonicFieldSet objects
 CHarmonicFieldsSetViewThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Class which combines a harmonic fields set with view settings
 CImportExportThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Collection of static support functions for export and import of data fields
 CRigorousSimulationResult1DThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Class for storing the results of rigorous calculations for which there is no modulation in y-direction. In this case the result is a line of orders. For each order the efficiency and Rayleigh coefficients are stored
 CTransformationsThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Fourier transformations on various representations of fields
 CWaveParameters Contains wave parameters used in ComplexAmplitude if WaveParameters are used
 NFreeSpacePropagation
 CAutomaticParaxialPropagationThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Class containing static functions for automatic propagation of ComplexAmplitude
 CElementaryFieldScalingPropagationOperatorsThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
This class contains a number of static member functions performing well-known elementary wave propagation operators. In difference to the ElementaryPropagationOperators class all functions change number of sampling points and the sampling distance automatically the number of sampling points and the sampling distance to avoid numerical errors. Additionally some functions are provided that can estimate the necessary number of sampling points and the sampling distance to avoid numerical errors
 CElementaryPropagationOperatorsThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
This class contains a number of static member functions performing well-known elementary wave propagation operators. Every function warns for numerical problems that can occur during propagation. Additionally some functions are supported that can estimate numerical errors without performing a propagation
 NFunctions
 CSpecialFunctionsThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Class containing special (named) functions like the Laguerre, Bessel, Legendre, ... functions. The methods are just static methods, they are not derived from BaseFunction class
 NLightPath
 CDetectorResultObjectThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Class representing a the result of a detector. The result can be either a list of physical values or a single physical value, a VirtualLab document type, or a special object combining field data and view properties (ComplexAmplitudeView or HarmonicFieldsSetView)
 NMaterials
 CMaterialThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
There are different material classes possible that can contain material properties with different definition. All material classes have to have this interface to access the material properties
 NNumerics
 NRegion1D
 CComposedRegion1DThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Public class which defines a region composed by several 1D subregions. These subregions are composed using logical operations like AND, OR, XOR, DIFF
 CIntervalRegionThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Class for a simple, real valued coordinate interval, representing a 1D region
 CRegion1DThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Class that describes a 1D region
 CSampledRegion1DThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Class which describes a region via sampled data. A data point marks its own local interval as being 'inside' if its value is unequal zero
 NRegion2D
 CComposedRegion2DThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Public class which defines a region composed by several subregions. These subregions are composed using logical operations like AND, OR, XOR, DIFF. Please note: The axis aligned bounding box cannot be determined exactly in every case
 CElementaryRegion2DThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Base class for all Region2D derived classes which are not composed
 CEllipticRegionThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Class which describes an elliptic region which may be situated at an arbitrary center and which may be rotated by an arbitrary angle
 CRectangularRegionThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Class which describes a rectangular region which may be situated at an arbitrary center and which may be rotated by an arbitrary angle
 CRegion2DThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Class that describes a 2D region
 CSampledRegion2DThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Class which describes a region via sampled data. A data point marks its own small rectangular region as being 'inside' if its value is unequal zero
 CSimplePolygonThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Public class which defines a simple polygon (defined by an array of vertices). 'Simple' means, that there are no intersections of the vertices
 CAxisRotationSequenceThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Class for describing a sequence of rotations about coordinate axes
 CCartesianCoordinateSystemThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Class for right-handed Cartesian coordinate systems
 CCFieldDerivative1DRealThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Class derived from ComplexField, designed especially for one dimensional, real valued data
 CColorMappingThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Used to describe the color mapping between a ComplexAmplitude and a bitmap. Colors from StartColor to EndColor are linearly mapped to double values from StartValue to EndValue. Optional a third color can be inserted in the middle. All parameters are stored separately for each FieldQuantity
 CComplex This struct holds a complex number.
Operators ( \(a+b\), \(a-b\), \(a*b\), \(a/b\) and \(a^b\)) can be used. Passing \(a\) or \(b\) as double is supported
 CComplexFieldThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
This class is a matrix of complex values. If no imaginary part is needed (real valued fields) one can set a special flag that indicates a real valued field (ComplexField with imaginary part zero). This different internal representations are used to optimize the computer memory and computational time.
Operators ( \(a+b\), \(a-b\), \(a*b\) and \(a/b\)) can be used. Passing \(a\) or \(b\) as Complex or double is supported (Except of \(/\), only \(b\) may be a scalar). Operator \(a|b\) is used for calculation of inner product of two ComplexFields: \(a|b=\sum _{j=0}^{m}\sum _{i=0}^{n}a_{{i,j}}b_{{i,j}^{\star}}\) ( \(z^{\star}\) means conjugation of complex number.). IsComplex property is always taken from first operand
 CComplexField1DArrayThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Class to encapsulate an array of objects of type ComplexFieldDerivative1D. It also ensures that all entries are either complex or real valued
 CComplexFieldArrayThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Class to encapsulate an array of objects of type ComplexField
 CComplexFieldDerivative1DThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Class derived from ComplexField, designed especially for one dimensional data
 CComplexFieldInterpolationThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
This class contains static member function to interpolate a ComplexField to another sampling grid
 CComplexFieldPointInterpolationThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
ComplexFieldPointInterpolation is a class with static members that are able to interpolated pointwise between different sampling points of a ComplexField. Additionally a non static-optimized version is supported for most interpolation methods. These functions are optimized for an interpolation on an equidistant grid. Different interpolation methods are supported. For more information see [Lehmann1999]
 CCoordinateSystemBaseVectorsThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Class for the base vectors of a Cartesian coordinate system. This kind of triple vector is also called "trihedron"
 CCoordinateTransformationsThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Provides static conversion functions from one coordinate system to another one, among others
 CDataArray1DThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Class for objects that store data in C^N which are equidistant or non equidistant distributed in R^1
 CDataArray2DThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Class for objects that store gridded data in C^N which are equidistant or non equidistant distributed in R^2
 CDataArrayBaseThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Abstract class for storing a map R^M → C^N
 CDataArrayGridLessThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Class for objects that store data in C^N which are arbitrarily distributed (i.e. not on a grid) in ℝ^M
 CDirectionByDirectionAnglesThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
A class for defining directions by direction angles
 CDirectionByRotationMatrixThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
A class for defining directions by applying a rotation matrix to a starting vector
 CDirectionByRotationSequenceThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
A class for defining directions by applying a sequence of axis rotations to a starting vector
 CEulerAnglesSetThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Struct for Euler angles, following the Z-X'-Z'-convention
 CExtrapolationInfoThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Class which holds information about extrapolation of 1D and 2D data with a finite domain of definition. The extrapolation information tells how to operate outside of the definition domain
 CIOrientationDefinitionThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Interface to be implemented by all classes that describe a rotation definition
 CIProvidesPositioningReferencesThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Interface to be implemented by all classes that contain coordinate systems that can serve as positioning references
 CIRegion1D2DThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Interface to connect 1D and 2D regions
 CMathFunctions This class contains various mathematical functions and constants
 CMatrix3x3CThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
This class defines a 3x3 Matrix of complex numbers.
Operators ( \(a+b\), \(a-b\)). Operator ( \(a*b\)) supports \(b\) as complex or Vector3C as well
 CMatrix3x3DThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
This class defines a 3x3 Matrix of double numbers.
Operators ( \(a+b\), \(a-b\)). Operator ( \(a*b\)) supports \(b\) as double or VectorD as well
 COrientationByCartesianAnglesThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
A class for defining orientations by Cartesian angles, i.e. the angles between the projection of the direction to be defined onto the x-z-plane and the z-axis (alpha), and between the projection of the direction to be defined onto the y-z-plane and the z-axis (beta)
 COrientationByDirectionAnglesThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
A class for defining orientations by direction angles, i.e. the angles between the direction to be defined and each of the Cartesian axis respectively
 COrientationByEulerAnglesThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
A class for defining orientations by Euler angles
 COrientationByMatrixThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
A class for defining orientations via rotation matrix
 COrientationBySphereAnglesThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
A class for defining orientations by sphere angles
 COrientationDefinitionBaseThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Base for all classes that describe a rotation definition
 COrientedPlaneThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Class for objects that describe planes with a right-hand orientation. Data are stored in parametrized form, i.e. as one point and two vectors. The third base vector gives the orientated normal vector
 CPhysicalUnitThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Association between unit string and corresponding factor
 CPhysicalValue class for a double value with a physical unit
 CPhysicalValueBase Base class for a complex or double value with a physical unit
 CPhysicalValuePairThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Class for a pair of physical values
 CPhysicalValueRangeThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Class for a range of physical values
 CPositionThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Class to describe a position object, that is a point in R^3, with reference information added
 CPositionedLineThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Class for objects that describe positioned lines in space
 CSamplingParametersThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
This class contains parameters for proper sampling of a complex field
 CSimpleRotationThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Class for describing a rotation about one of the coordinate axes or by a certain predefined angle
 CTransformationsThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Contains static functions that perform transformations of one or two ComplexField like Fourier Transform of Convolution
 CVectorThis struct defines a two-dimensional vector of integer numbers. Operators \(a+b\), \(a-b\) and \(a|b\) (Scalar product) can be used. One operand on \(a*b\) and \(a/b\) can be an integer too. Implicit casting to System.Drawing.Point and System.Drawing.Size is supported.
 CVector3C This class defines 3-dimensional vectors of complex numbers. The class saves the x,y and z coordinates
 CVector3D This struct defines a three dimensional vector of double numbers. Operators \(a+b\), \(a-b\) and \(a|b\) (Scalar product) can be used. Second operand on \(a*b\), \(a/b\) and \(a^b\) (applied separate on components) can be a double too
 CVectorB This struct defines a two-dimensional vector of boolean values
 CVectorCThis struct defines a two-dimensional vector of complex numbers. Operators \(a+b\), \(a-b\) and \(a|b\) (Scalar product) can be used. One operand on \(a*b\), \(a/b\) (applied separate on components) can also be a Complex. Implicit casting from Vector is supported.
 CVectorD This struct defines a two-dimensional vector of double numbers. Operators \(a+b\), \(a-b\) and \(a|b\) (Scalar product) can be used. One operand on \(a*b\), \(a/b\) (applied separate on components) can be also a double. It is also possible to raise a VectorD to a given power ( \(a^b\)). Implicit casting from Vector is supported
 CVectorLThis struct defines a two-dimensional vector of long numbers. Operators \(a+b\), \(a-b\) and \(a|b\) (Scalar product) can be used. One operand on \(a*b\) and \(a/b\) can be an long too.
 NOpticalSystems
 CBasicParameterThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
The parameter which holds the data for the numerical setup of light sources
 CHomogeneousMediumThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Class representing a homogeneous medium
 COpticalMediumThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Base class for every class that represents a modulated or non-modulated refractive index distribution between two surfaces
 NProjectionAlgorithms
 CConstraintThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Projection operator for constraint on a ComplexField object
 CConstraintDomainThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Collection of information for the transmission or signal domain
 CPropagationOperatorThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Propagation operator for usage in projection algorithms
 NRigorousAnalysis
 COrderInfoThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Class to store the results of a single order as obtained by rigorous simulations: order number, Rayleigh coefficients, diffraction efficiency
 NStandardTransmissionDesign
 CConstraintSpecificationThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
This class stores the specification of all constraints applied during an IFTA optimization
 CIterationDataOutputThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Delegates and parameters to be used for visualizing progress during iteration, for logging merit functions, and for creating animations
 NSupportFunctions
 CDataArrayConversionsThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Support class containing various conversions between numerical data arrays or data array based documents and other documents
 CDataArrayManipulationsThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Support class containing the manipulations for numerical data arrays
 NTransitionPointLayers
 CTransitionPointLayersVisualizationSupportThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Static support functions to convert a Transition Point Layers object into a Data Array
 NWyrowski
 NInfrastructure
 NSupport
 CFileSystemSupportThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Static class to support access to the file system and handling of file names
 CMathSupport This class contains various mathematical functions and constants
 CStringSupportThis class is subject to change. Programs using this class may require changes with a new version of VirtualLab.
Class containing static methods to create strings formatted in a special way