|
Programming Reference for VirtualLab Fusion
2022.1
|
| ▼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_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 | |
| CFileHandlingSupport | This 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 | |
| CGlobalOptions | This 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. |
| CGlobals | This class stores global settings and holds several programming interfaces. |
| CIActiveDocumentHistory | Interface providing access to documents in current VirtualLab session. |
| CIDataDisplay | Interface providing methods to add documents or messages to FormMain. |
| CIDocument | Interface implemented by all VirtualLab documents. |
| ►NDataVisualization | |
| NDiagramView | |
| ►NExportImport | |
| CImportSupportFunctions | This class is subject to change. Programs using this class may require changes with a new version of VirtualLab. Provides static import functions. |
| CTextWriterFileHandler | This 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 | |
| CAdditionalCAImportParams | This 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. |
| CASCIIParam | This 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. |
| CChromaticFieldsSet | This 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_1D | This 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 |
| CChromaticFieldsSetBase | This 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) |
| CComplexAmplitude | This 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.). |
| CComplexAmplitudeInterpolation | This 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. |
| CComplexAmplitudeOperations | This class is subject to change. Programs using this class may require changes with a new version of VirtualLab. Contains different operators for the manipulation of ComplexAmplitude. |
| CComplexAmplitudePointInterpolation | This 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]. |
| CComplexAmplitudeView | This 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. |
| CFieldRepresentationObject | This class is subject to change. Programs using this class may require changes with a new version of VirtualLab. Abstract base class for all field representations. |
| CHarmonicFieldBase | This 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. |
| CHarmonicFieldsSet | This 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). |
| CHarmonicFieldsSetEvaluation | This class is subject to change. Programs using this class may require changes with a new version of VirtualLab. Evaluation functions for HarmonicFieldSet objects. |
| CHarmonicFieldsSetView | This 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. |
| CImportExport | This 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. |
| CRigorousSimulationResult1D | This 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. |
| CTransformations | This 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 | |
| CAutomaticParaxialPropagation | This 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. |
| CElementaryFieldScalingPropagationOperators | This 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. |
| CElementaryPropagationOperators | This 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 | |
| CSpecialFunctions | This 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 | |
| CDetectorResultObject | This 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 | |
| CMaterial | This 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 | |
| CComposedRegion1D | This 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. |
| CIntervalRegion | This 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. |
| CRegion1D | This class is subject to change. Programs using this class may require changes with a new version of VirtualLab. Class that describes a 1D region. |
| CSampledRegion1D | This 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 | |
| CComposedRegion2D | This 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. |
| CElementaryRegion2D | This 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. |
| CEllipticRegion | This 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. |
| CRectangularRegion | This 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. |
| CRegion2D | This class is subject to change. Programs using this class may require changes with a new version of VirtualLab. Class that describes a 2D region. |
| CSampledRegion2D | This 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. |
| CSimplePolygon | This 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. |
| CAxisRotationSequence | This 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 |
| CCartesianCoordinateSystem | This 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. |
| CCFieldDerivative1DReal | This 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. |
| CColorMapping | This 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. |
| CComplexField | This 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. Internally the complex numbers can be represented using different precisions (double, float, integer). 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.). Precision and IsComplex property is always taken from first operand. |
| CComplexField1DArray | This 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. |
| CComplexFieldArray | This 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. |
| CComplexFieldDerivative1D | This 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. |
| CComplexFieldInterpolation | This 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. |
| CComplexFieldPointInterpolation | This 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]. |
| CCoordinateSystemBaseVectors | This 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". |
| CCoordinateTransformations | This 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 |
| CDataArray1D | This 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 |
| CDataArray2D | This 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 |
| CDataArrayBase | This 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 |
| CDataArrayGridLess | This 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 R^M |
| CDirectionByDirectionAngles | This 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. |
| CDirectionByRotationMatrix | This 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. |
| CDirectionByRotationSequence | This 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. |
| CEulerAnglesSet | This 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. |
| CExtrapolationInfo | This 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. |
| CIOrientationDefinition | This 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 |
| CIProvidesPositioningReferences | This 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 |
| CIRegion1D2D | This 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. |
| CMatrix3x3C | This 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. |
| CMatrix3x3D | This 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. |
| COrientationByCartesianAngles | This 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). |
| COrientationByDirectionAngles | This 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. |
| COrientationByEulerAngles | This 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. |
| COrientationByMatrix | This 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. |
| COrientationBySphereAngles | This 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. |
| COrientationDefinitionBase | This 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. |
| COrientedPlane | This 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. |
| CPhysicalUnit | This 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. |
| CPhysicalValuePair | This 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. |
| CPhysicalValueRange | This 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. |
| CPosition | This 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. |
| CPositionedLine | This 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 |
| CSamplingParameters | This 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. |
| CSimpleRotation | This 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 |
| CTransformations | This 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. |
| CVector | This 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. |
| CVectorC | This 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. |
| CVectorL | This 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 | |
| CBasicParameter | This 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. |
| CHomogeneousMedium | This class is subject to change. Programs using this class may require changes with a new version of VirtualLab. Class representing a homogeneous medium. |
| COpticalInterface | This class is subject to change. Programs using this class may require changes with a new version of VirtualLab. This is the base class for all optical surfaces. |
| COpticalMedium | This 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. |
| CProfileHeightInterface | This class is subject to change. Programs using this class may require changes with a new version of VirtualLab. This is the base class for all optical interfaces which can be described by a profile height function h(x, y). The profile height corresponds to the z-position of the optical interface at a given lateral position. |
| ►NProjectionAlgorithms | |
| CConstraint | This 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. |
| CConstraintDomain | This 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. |
| CPropagationOperator | This 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 | |
| COrderInfo | This 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 | |
| CConstraintSpecification | This 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. |
| CDesignAlgorithmHandler | This class is subject to change. Programs using this class may require changes with a new version of VirtualLab. The IFTA Optimization Document. |
| CIterationDataOutput | This 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 | |
| CDataArrayConversions | This 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. |
| CDataArrayManipulations | This 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 | |
| CTransitionPointLayersVisualizationSupport | This 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. |
| ▼NUI | |
| ►NFieldRepresentations | |
| ►NComplexAmplitudeViewAux | |
| CCopyToClipboardProperties | This class is subject to change. Programs using this class may require changes with a new version of VirtualLab. Options for copying a a light view or a data view to clipboard. |
| ▼NWyrowski | |
| ▼NInfrastructure | |
| ►NSupport | |
| CFileSystemSupport | This 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. |
| CStringSupport | This 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. |