libCZI
Reading and Writing CZI documents made easy
libCZI_Metadata2.h
1 // SPDX-FileCopyrightText: 2017-2022 Carl Zeiss Microscopy GmbH
2 //
3 // SPDX-License-Identifier: LGPL-3.0-or-later
4 
5 #pragma once
6 
7 #include <cstdint>
8 #include <string>
9 #include <vector>
10 #include <memory>
11 #include "libCZI.h"
12 
13 namespace libCZI
14 {
20  enum class DimensionChannelChannelType : std::uint8_t
21  {
22  Heightmap,
23  PalHR,
24  PalWidefield,
25  SimHR,
26  SimWidefield,
27  SimDWF,
28  AiryScanSum,
30  AiryScanRaw,
31  AiryScanSr,
32  AiryScanVp,
33  AiryScanMb,
37  };
38 
41  enum class DimensionChannelAcquisitionMode : std::uint8_t
42  {
43  WideField,
56  PALM,
57  STORM,
58  STED,
59  TIRF,
60  FSM,
61  LCM,
62  SPIM,
63  SEM,
64  FIB,
65  FIB_SEM,
67  Other
68  };
69 
71  enum class DimensionChannelIlluminationType : std::uint8_t
72  {
73  Transmitted,
75  Oblique,
76  NonLinear,
77  Other
78  };
79 
81  enum class DimensionChannelContrastMethod : std::uint8_t
82  {
83  Brightfield,
84  Phase,
85  DIC,
89  Darkfield,
90  Fluorescence,
92  Other
93  };
94 
96  enum class DimensionChannelPinholeGeometry : std::uint8_t
97  {
98  Circular,
99  Rectangular,
100  Other
101  };
102 
104  template <typename t>
106  {
109 
112 
114  t end;
115  };
116 
119  {
121  enum class InformationType
122  {
123  SinglePeak,
124  Ranges
125  };
126 
129 
131  double singlePeak;
132 
134  std::vector<RangeOrSingleValue<double>> ranges;
135  };
136 
139  {
140  public:
144  virtual bool TryGetAttributeId(std::wstring* id) = 0;
145  virtual ~IAttributeId() = default;
146  };
147 
150  {
151  public:
155  virtual bool TryGetAttributeName(std::wstring* name) = 0;
156  virtual ~IAttributeName() = default;
157  };
158 
169 
172  {
173  public:
178 
182  virtual bool TryGetChannelUnit(std::wstring* unit) = 0;
183 
187  virtual bool TryGetPixelType(PixelType* pixelType) = 0;
188 
192  virtual bool TryGetComponentBitCount(int* bitCount) = 0;
193 
197  virtual bool TryGetAcquisitionMode(DimensionChannelAcquisitionMode* acquisitionMode) = 0;
198 
202  virtual bool TryGetIlluminationType(DimensionChannelIlluminationType* illuminationType) = 0;
203 
207  virtual bool TryGetContrastMethod(DimensionChannelContrastMethod* contrastMethod) = 0;
208 
212  virtual bool TryGetIlluminationWavelength(SpectrumCharacteristics* illuminationwavelength) = 0;
213 
217  virtual bool TryGetDetectionWavelength(SpectrumCharacteristics* detectionwavelength) = 0;
218 
222  virtual bool TryGetExcitationWavelength(double* excitationwavelength) = 0;
223 
227  virtual bool TryGetEmissionWavelength(double* emissionwavelength) = 0;
228 
232  virtual bool TryGetEffectiveNA(double* na) = 0;
233 
237  virtual bool TryGetDyeId(std::wstring* dyeid) = 0;
238 
242  virtual bool TryGetDyeDatabaseId(std::wstring* dyedatabaseid) = 0;
243 
247  virtual bool TryGetPinholeSize(double* pinholesize) = 0;
248 
252  virtual bool TryGetPinholeSizeAiry(double* pinholesizeairy) = 0;
253 
257  virtual bool TryGetPinholeGeometry(DimensionChannelPinholeGeometry* pinholegeometry) = 0;
258 
262  virtual bool TryGetFluor(std::wstring* fluor) = 0;
263 
267  virtual bool TryGetNDFilter(double* ndfilter) = 0;
268 
272  virtual bool TryGetPocketCellSetting(int* pocketcellsetting) = 0;
273 
277  virtual bool TryGetColor(libCZI::Rgb8Color* color) = 0;
278 
282  virtual bool TryGetExposureTime(RangeOrSingleValue<std::uint64_t>* exposuretime) = 0;
283 
287  virtual bool TryGetDepthOfFocus(double* depthoffocus) = 0;
288 
292  virtual bool TryGetSectionThickness(double* sectionthickness) = 0;
293 
296  virtual std::shared_ptr<IDimensionChannelDetectorSettings> GetDetectorSettings() = 0;
297 
300  virtual std::shared_ptr<IDimensionChannelLightSourcesSettings> GetLightSourcesSettings() = 0;
301 
304  virtual std::shared_ptr<IDimensionChannelLightPath> GetLightPath() = 0;
305 
308  virtual std::shared_ptr<IDimensionChannelLaserScanInfo> GetLaserScanInfo() = 0;
309 
312  virtual std::shared_ptr<IDimensionChannelSPIMIlluminationSettings> GetSPIMIlluminationSettings() = 0;
313 
316  virtual std::shared_ptr<IDimensionChannelSPIMDetectionSettings> GetSPIMDetectionSettings() = 0;
317 
320  virtual std::shared_ptr<IDimensionChannelSIMSettings> GetSIMSettings() = 0;
321 
324  virtual std::shared_ptr<IDimensionChannelPolarizingSettings> GetPolarizingSettings() = 0;
325 
328  virtual std::shared_ptr<IDimensionChannelAiryscanSettings> GetAiryscanSettings() = 0;
329 
333  virtual bool TryGetReflector(std::wstring* reflector) = 0;
334 
338  virtual bool TryGetCondenserContrast(std::wstring* condensorContrast) = 0;
339 
343  virtual bool TryGetNACondenser(double* naCondensor) = 0;
344 
347  virtual std::shared_ptr<IDimensionChannelRatio> GetRatio() = 0;
348 
349  ~IDimensionChannelInfo() override = default;
350  };
351 
354  {
355  public:
358  virtual int GetChannelCount() const = 0;
359 
363  virtual std::shared_ptr<IDimensionChannelInfo> GetChannel(int i) const = 0;
364 
365  virtual ~IDimensionsChannelsInfo() = default;
366  };
367 
369  enum class ChannelDetectorSettingsBinning : std::uint8_t
370  {
371  _1x1,
372  _2x2,
373  _4x4,
374  _8x8,
375  Other
376  };
377 
379  enum class ChannelDetectorSettingsShutter : std::uint8_t
380  {
381  Rolling,
382  Global,
383  Other
384  };
385 
387  enum class ChannelDetectorCameraProcessingMode :std::uint8_t
388  {
389  None,
390  Widefield,
391  Sectioned,
392  RawDataMode
393  };
394 
397  {
398  public:
402  virtual bool TryGetDetectorRef(std::wstring* detectorRef) = 0;
403 
407  virtual bool TryGetBinning(ChannelDetectorSettingsBinning* binning) = 0;
408 
412  virtual bool TryGetShutter(ChannelDetectorSettingsShutter* shutter) = 0;
413 
417  virtual bool TryGetPhotonConversionFactor(double* conversionFactor) = 0;
418 
422  virtual bool TryGetGain(double* gain) = 0;
423 
427  virtual bool TryGetDigitalGain(double* digitalgain) = 0;
428 
432  virtual bool TryGetOffset(double* offset) = 0;
433 
437  virtual bool TryGetEMGain(double* emgain) = 0;
438 
442  virtual bool TryGetVoltage(double* voltage) = 0;
443 
447  virtual bool TryGetReadOutRate(double* readoutrate) = 0;
448 
453  virtual bool TryGetUseBrightnessContrastCorrection(bool* usebrightnesscontrastcorrection) = 0;
454 
458  virtual bool TryGetPixelMaximum(double* pixelmaximum) = 0;
459 
463  virtual bool TryGetPixelAccuracy(double* pixelaccuracy) = 0;
464 
468  virtual bool TryGetPixelScaleFactor(double* pixelscalefactor) = 0;
469 
474 
475  virtual ~IDimensionChannelDetectorSettings() = default;
476  };
477 
480  {
481  public:
484  {
486  double stokesParameter[4];
487  };
488 
492  virtual bool TryGetLightSourceRef(std::wstring* lightsourceref) = 0;
493 
497  virtual bool TryGetWavelength(double* wavelength) = 0;
498 
502  virtual bool TryGetAttenuation(double* attenuation) = 0;
503 
507  virtual bool TryGetTransmission(double* transmission) = 0;
508 
512  virtual bool TryGetIntensity(std::wstring* intensity) = 0;
513 
517  virtual bool TryGetFlashDuration(double* flashduration) = 0;
518 
522  virtual bool TryGetTIRFAngle(double* tirfangle) = 0;
523 
527  virtual bool TryGetTIRFDepthOfPenetration(double* tirfdepthofpenetration) = 0;
528 
532  virtual bool TryGetIsTIRFCalibrated(bool* isTIRFcalibrated) = 0;
533 
537  virtual bool TryGetIsNlo(bool* isnlo) = 0;
538 
542  virtual bool TryGetPolarization(Polarization* polarization) = 0;
543 
544  virtual ~IDimensionChannelLightSourcesSetting() = default;
545  };
546 
549  {
550  public:
553  virtual int GetLightSourceSettingCount() const = 0;
554 
558  virtual std::shared_ptr<IDimensionChannelLightSourcesSetting> GetLightSourceSetting(int i) const = 0;
559 
560  virtual ~IDimensionChannelLightSourcesSettings() = default;
561  };
562 
565  {
566  public:
572  virtual bool TryGetExcitationFilterRef(std::wstring* excitationFilterRef) = 0;
573 
577  virtual bool TryGetDichroicFilterRef(std::wstring* dichroicRef) = 0;
578 
584  virtual bool TryGetEmissionFilterRef(std::wstring* emissionFilterRef) = 0;
585 
586  virtual ~IDimensionChannelLightPath() = default;
587  };
588 
590  enum class DimensionChannelLaserScanScanningMode : std::uint8_t
591  {
592  Frame,
593  FastFrame,
595  Line,
596  Spot,
597  Other
598  };
599 
601  enum class DimensionChannelLaserScanScanDirection : std::uint8_t
602  {
603  Bidirectional,
605  };
606 
609  {
610  Mean,
611  Sum,
612  Other
613  };
614 
616  enum class DimensionChannelLaserScanAveragingMode : std::uint8_t
617  {
618  Frame,
619  Line,
620  Other
621  };
622 
625  {
626  On,
627  Off
628  };
629 
632  {
633  public:
637  virtual bool TryGetPixelTime(double* pixelTime) = 0;
638 
642  virtual bool TryGetLineTime(double* lineTime) = 0;
643 
647  virtual bool TryGetFrameTime(double* frameTime) = 0;
648 
652  virtual bool TryGetAveraging(int* averaging) = 0;
653 
658 
662  virtual bool TryGetSampleRotation(double* sampleRotation) = 0;
663 
667  virtual bool TryGetSampleOffsetX(double* sampleOffsetX) = 0;
668 
672  virtual bool TryGetSampleOffsetY(double* sampleOffsetY) = 0;
673 
679 
683  virtual bool TryGetZoomX(double* zoomX) = 0;
684 
688  virtual bool TryGetZoomY(double* zoomY) = 0;
689 
693  virtual bool TryGetZoomZ(double* zoomZ) = 0;
694 
698  virtual bool TryGetCropOffset(double* cropOffset) = 0;
699 
703  virtual bool TryGetLaserAttenuatorMeas(double* laserAttenuatorMeas) = 0;
704 
708  virtual bool TryGetLaserBlanking(double* laserBlanking) = 0;
709 
713  virtual bool TryGetLaserAttenuatorBleach(double* laserAttenuatorBleach) = 0;
714 
718  virtual bool TryGetLineStep(std::uint32_t* lineStep) = 0;
719 
723  virtual bool TryGetScanSpeed(int* scanSpeed) = 0;
724 
730 
735 
740 
741  virtual ~IDimensionChannelLaserScanInfo() = default;
742  };
743 
746  {
747  Gauss,
748  Bessel,
749  Other
750  };
751 
752  class IInstrumentObjectiveSettings;
753  class ISPIMIlluminationResonanceScannerSettings;
754  class ISPIMIlluminationGalvoScannerSettings;
755 
758  {
759  public:
763  virtual bool TryGetNALightSheet(double* naLightSheet) = 0;
764 
769 
773  virtual bool TryGetCylinderLensRef(std::wstring* cylinderLensRef) = 0;
774 
777  virtual std::shared_ptr<IInstrumentObjectiveSettings> GetIlluminationObjectiveSettings() = 0;
778 
781  virtual std::shared_ptr<ISPIMIlluminationResonanceScannerSettings> GetResonanceScannerSettings() = 0;
782 
785  virtual std::shared_ptr<ISPIMIlluminationGalvoScannerSettings> GetGalvoScannerSettings() = 0;
786 
787  virtual ~IDimensionChannelSPIMIlluminationSettings() = default;
788  };
789 
792  {
793  public:
795  enum class Medium : std::uint8_t
796  {
797  Air,
798  Oil,
799  Water,
800  Glycerol,
801  Other
802  };
803 
807  virtual bool TryGetObjectiveRef(std::wstring* objectiveRef) = 0;
808 
812  virtual bool TryGetMedium(Medium* medium) = 0;
813 
817  virtual bool TryGetCorrectionCollar(double* correctioncollar) = 0;
818 
822  virtual bool TryGetCorrectionCollar2(double* correctioncollar2) = 0;
823 
828  virtual bool TryGetCorrectionControllerMode(std::wstring* correctioncontrollermode) = 0;
829 
835  virtual bool TryGetCorrectionControllerBottomThickness(double* correctioncontrollerbottomthickness) = 0;
836 
842  virtual bool TryGetCorrectionControllerImagingDepth(double* correctioncontrollerimagingdepth) = 0;
843 
847  virtual bool TryGetRefractiveIndex(double* refractiveindex) = 0;
848 
849  virtual ~IInstrumentObjectiveSettings() = default;
850  };
851 
854  {
855  public:
859  virtual bool TryGetAmplitude(double* amplitude) = 0;
860 
861  virtual ~ISPIMIlluminationResonanceScannerSettings() = default;
862  };
863 
866  {
867  public:
871  virtual bool TryGetAmplitudeYScan(double* amplitudeYScan) = 0;
872 
876  virtual bool TryGetFrequency(double* frequency) = 0;
877 
881  virtual bool TryGetOffset1Left(double* offset1Left) = 0;
882 
886  virtual bool TryGetOffset1Right(double* offset1Right) = 0;
887 
891  virtual bool TryGetOffset2Left(double* offset2Left) = 0;
892 
896  virtual bool TryGetOffset2Right(double* offset2Right) = 0;
897 
898  virtual ~ISPIMIlluminationGalvoScannerSettings() = default;
899  };
900 
903  {
904  public:
908  virtual bool TryGetNADetection(double* naDetection) = 0;
909 
910  virtual ~IDimensionChannelSPIMDetectionSettings() = default;
911  };
912 
915  {
916  public:
920  virtual bool TryGetSIMDeviceRef(std::wstring* simDeviceRef) = 0;
921 
925  virtual bool TryGetGratingPeriod(double* gratingPeriod) = 0;
926 
930  virtual bool TryGetGratingRotation(double* gratingRotation) = 0;
931 
935  virtual bool TryGetGridDescription(std::wstring* gridDescription) = 0;
936 
940  virtual bool TryGetReflector(std::wstring* reflector) = 0;
941 
945  virtual bool TryGetFilterSetRef(std::wstring* filterSetRef) = 0;
946 
950  virtual bool TryGetDiffractionEfficiency1(double* diffractionEfficiency1) = 0;
951 
955  virtual bool TryGetDiffractionEfficiency2(double* diffractionEfficiency2) = 0;
956 
960  virtual bool TryGetDiffractionEfficiency3(double* diffractionEfficiency3) = 0;
961 
962  virtual ~IDimensionChannelSIMSettings() = default;
963  };
964 
967  {
968  public:
972  virtual bool TryGetPolarizerAngle(double* polarizerAngle) = 0;
973 
977  virtual bool TryGetAnalyzerAngle(double* analyzerAngle) = 0;
978 
979  virtual ~IDimensionChannelPolarizingSettings() = default;
980  };
981 
984  {
985  public:
987  struct Vector
988  {
989  double x;
990  double y;
991  };
992 
996  virtual bool TryGetIlluminationLinePixels(Vector* illuminationLinePixels) = 0;
997 
1001  virtual bool TryGetIlluminationLine(Vector* illuminationLine) = 0;
1002 
1006  virtual bool TryGetFiberMapping(std::vector<int>* mapping) = 0;
1007 
1011  virtual bool TryGetEffectiveNAinX(double* effectiveNAinX) = 0;
1012 
1016  virtual bool TryGetEffectiveNAinY(double* effectiveNAinY) = 0;
1017 
1018  virtual ~IFastAiryScanSettings() = default;
1019  };
1020 
1023  {
1024  public:
1026  enum class Mode :std::uint8_t
1027  {
1028  SuperResolution,
1029  VirtualPinhole,
1030  MultiBeam,
1031  Off
1032  };
1033 
1037  virtual bool TryGetMode(Mode* mode) = 0;
1038 
1041  virtual std::shared_ptr<IFastAiryScanSettings> GetFastAiryScanSettings() = 0;
1042 
1046  virtual bool TryGetVirtualPinholeSize(double* virtualPinholeSize) = 0;
1047 
1051  virtual bool TryGetMagnification(double* magnification) = 0;
1052 
1056  virtual bool TryGetTransformationXX(double* transformationXX) = 0;
1057 
1061  virtual bool TryGetTransformationXY(double* transformationXY) = 0;
1062 
1066  virtual bool TryGetTransformationYX(double* transformationYX) = 0;
1067 
1071  virtual bool TryGetTransformationYY(double* transformationYY) = 0;
1072 
1073  virtual ~IDimensionChannelAiryscanSettings() = default;
1074  };
1075 
1078  {
1079  public:
1101  enum class Type : std::uint8_t
1102  {
1104  OnlineRatio,
1110  };
1111 
1115  virtual bool TryGetType(Type* type) = 0;
1116 
1120  virtual bool TryGetConst1(double* c1) = 0;
1121 
1125  virtual bool TryGetConst2(double* c2) = 0;
1126 
1130  virtual bool TryGetConst3(double* c3) = 0;
1131 
1135  virtual bool TryGetConst4(double* c4) = 0;
1136 
1140  virtual bool TryGetConst5(double* c5) = 0;
1141 
1145  virtual bool TryGetConst6(double* c6) = 0;
1146 
1151  virtual bool TryGetSource1(std::vector<std::wstring>* source1) = 0;
1152 
1157  virtual bool TryGetSource2(std::vector<std::wstring>* source2) = 0;
1158 
1159  virtual ~IDimensionChannelRatio() = default;
1160  };
1161 }
This interface is used for all elements that contain an 'id' (as XML-attribute).
Definition: libCZI_Metadata2.h:139
virtual bool TryGetAttributeId(std::wstring *id)=0
This interface is used for all elements that contain a 'name' (as XML-attribute).
Definition: libCZI_Metadata2.h:150
virtual bool TryGetAttributeName(std::wstring *name)=0
The airy scan settings.
Definition: libCZI_Metadata2.h:1023
virtual bool TryGetMagnification(double *magnification)=0
virtual bool TryGetTransformationXY(double *transformationXY)=0
virtual bool TryGetMode(Mode *mode)=0
virtual bool TryGetTransformationYX(double *transformationYX)=0
Mode
Values that represent the mode.
Definition: libCZI_Metadata2.h:1027
@ VirtualPinhole
An enum constant representing the virtual pinhole option.
@ MultiBeam
An enum constant representing the multi beam option.
@ SuperResolution
An enum constant representing the super resolution option.
@ Off
An enum constant representing the off option.
virtual std::shared_ptr< IFastAiryScanSettings > GetFastAiryScanSettings()=0
virtual bool TryGetTransformationYY(double *transformationYY)=0
virtual bool TryGetVirtualPinholeSize(double *virtualPinholeSize)=0
virtual bool TryGetTransformationXX(double *transformationXX)=0
The detector settings.
Definition: libCZI_Metadata2.h:397
virtual bool TryGetEMGain(double *emgain)=0
virtual bool TryGetVoltage(double *voltage)=0
virtual bool TryGetCameraProcessingMode(ChannelDetectorCameraProcessingMode *mode)=0
virtual bool TryGetDigitalGain(double *digitalgain)=0
virtual bool TryGetPixelMaximum(double *pixelmaximum)=0
virtual bool TryGetUseBrightnessContrastCorrection(bool *usebrightnesscontrastcorrection)=0
virtual bool TryGetDetectorRef(std::wstring *detectorRef)=0
virtual bool TryGetReadOutRate(double *readoutrate)=0
virtual bool TryGetOffset(double *offset)=0
virtual bool TryGetGain(double *gain)=0
virtual bool TryGetShutter(ChannelDetectorSettingsShutter *shutter)=0
virtual bool TryGetPixelAccuracy(double *pixelaccuracy)=0
virtual bool TryGetPixelScaleFactor(double *pixelscalefactor)=0
virtual bool TryGetBinning(ChannelDetectorSettingsBinning *binning)=0
virtual bool TryGetPhotonConversionFactor(double *conversionFactor)=0
Information about the dimension "channel".
Definition: libCZI_Metadata2.h:172
virtual bool TryGetColor(libCZI::Rgb8Color *color)=0
virtual bool TryGetReflector(std::wstring *reflector)=0
virtual bool TryGetPinholeGeometry(DimensionChannelPinholeGeometry *pinholegeometry)=0
virtual bool TryGetIlluminationType(DimensionChannelIlluminationType *illuminationType)=0
virtual std::shared_ptr< IDimensionChannelSIMSettings > GetSIMSettings()=0
virtual bool TryGetDyeDatabaseId(std::wstring *dyedatabaseid)=0
virtual bool TryGetExcitationWavelength(double *excitationwavelength)=0
virtual bool TryGetCondenserContrast(std::wstring *condensorContrast)=0
virtual bool TryGetNDFilter(double *ndfilter)=0
virtual bool TryGetEmissionWavelength(double *emissionwavelength)=0
virtual std::shared_ptr< IDimensionChannelLightPath > GetLightPath()=0
virtual bool TryGetNACondenser(double *naCondensor)=0
virtual bool TryGetChannelUnit(std::wstring *unit)=0
virtual bool TryGetIlluminationWavelength(SpectrumCharacteristics *illuminationwavelength)=0
virtual std::shared_ptr< IDimensionChannelSPIMIlluminationSettings > GetSPIMIlluminationSettings()=0
virtual bool TryGetPixelType(PixelType *pixelType)=0
virtual bool TryGetChannelType(DimensionChannelChannelType *type)=0
virtual bool TryGetDetectionWavelength(SpectrumCharacteristics *detectionwavelength)=0
virtual bool TryGetDyeId(std::wstring *dyeid)=0
virtual bool TryGetSectionThickness(double *sectionthickness)=0
virtual bool TryGetFluor(std::wstring *fluor)=0
virtual bool TryGetDepthOfFocus(double *depthoffocus)=0
virtual std::shared_ptr< IDimensionChannelDetectorSettings > GetDetectorSettings()=0
virtual bool TryGetEffectiveNA(double *na)=0
virtual bool TryGetExposureTime(RangeOrSingleValue< std::uint64_t > *exposuretime)=0
virtual std::shared_ptr< IDimensionChannelRatio > GetRatio()=0
virtual bool TryGetContrastMethod(DimensionChannelContrastMethod *contrastMethod)=0
virtual bool TryGetPinholeSizeAiry(double *pinholesizeairy)=0
virtual std::shared_ptr< IDimensionChannelLightSourcesSettings > GetLightSourcesSettings()=0
virtual std::shared_ptr< IDimensionChannelPolarizingSettings > GetPolarizingSettings()=0
virtual bool TryGetAcquisitionMode(DimensionChannelAcquisitionMode *acquisitionMode)=0
virtual bool TryGetComponentBitCount(int *bitCount)=0
virtual bool TryGetPinholeSize(double *pinholesize)=0
virtual bool TryGetPocketCellSetting(int *pocketcellsetting)=0
virtual std::shared_ptr< IDimensionChannelSPIMDetectionSettings > GetSPIMDetectionSettings()=0
virtual std::shared_ptr< IDimensionChannelLaserScanInfo > GetLaserScanInfo()=0
virtual std::shared_ptr< IDimensionChannelAiryscanSettings > GetAiryscanSettings()=0
Information about the laser scan.
Definition: libCZI_Metadata2.h:632
virtual bool TryGetPixelTime(double *pixelTime)=0
virtual bool TryGetZoomX(double *zoomX)=0
virtual bool TryGetCropOffset(double *cropOffset)=0
virtual bool TryGetScanDirection(DimensionChannelLaserScanScanDirection *scanDirection)=0
virtual bool TryGetLineTime(double *lineTime)=0
virtual bool TryGetSampleRotation(double *sampleRotation)=0
virtual bool TryGetZoomY(double *zoomY)=0
virtual bool TryGetScanSpeed(int *scanSpeed)=0
virtual bool TryGetSampleOffsetX(double *sampleOffsetX)=0
virtual bool TryGetAveragingMode(DimensionChannelLaserScanAveragingMode *averagingMode)=0
virtual bool TryGetZoomZ(double *zoomZ)=0
virtual bool TryGetLaserAttenuatorBleach(double *laserAttenuatorBleach)=0
virtual bool TryGetFrameTime(double *frameTime)=0
virtual bool TryGetSampleOffsetY(double *sampleOffsetY)=0
virtual bool TryGetAveragingMethod(DimensionChannelLaserScanAveragingMethod *averagingMethod)=0
virtual bool TryGetScanningMode(DimensionChannelLaserScanScanningMode *mode)=0
virtual bool TryGetAveraging(int *averaging)=0
virtual bool TryGetLineStep(std::uint32_t *lineStep)=0
virtual bool TryGetLaserAttenuatorMeas(double *laserAttenuatorMeas)=0
virtual bool TryGetLaserBlanking(double *laserBlanking)=0
virtual bool TryGetLaserAttenuatorState(DimensionChannelLaserScanLaserAttenuatorState *attenuatorState)=0
The light path information.
Definition: libCZI_Metadata2.h:565
virtual bool TryGetDichroicFilterRef(std::wstring *dichroicRef)=0
virtual bool TryGetExcitationFilterRef(std::wstring *excitationFilterRef)=0
virtual bool TryGetEmissionFilterRef(std::wstring *emissionFilterRef)=0
The light sources settings.
Definition: libCZI_Metadata2.h:480
virtual bool TryGetTIRFAngle(double *tirfangle)=0
virtual bool TryGetWavelength(double *wavelength)=0
virtual bool TryGetIsNlo(bool *isnlo)=0
virtual bool TryGetIsTIRFCalibrated(bool *isTIRFcalibrated)=0
virtual bool TryGetPolarization(Polarization *polarization)=0
virtual bool TryGetLightSourceRef(std::wstring *lightsourceref)=0
virtual bool TryGetIntensity(std::wstring *intensity)=0
virtual bool TryGetFlashDuration(double *flashduration)=0
virtual bool TryGetAttenuation(double *attenuation)=0
virtual bool TryGetTransmission(double *transmission)=0
virtual bool TryGetTIRFDepthOfPenetration(double *tirfdepthofpenetration)=0
The light sources settings keyed by channel index.
Definition: libCZI_Metadata2.h:549
virtual int GetLightSourceSettingCount() const =0
virtual std::shared_ptr< IDimensionChannelLightSourcesSetting > GetLightSourceSetting(int i) const =0
The polarizer settings.
Definition: libCZI_Metadata2.h:967
virtual bool TryGetPolarizerAngle(double *polarizerAngle)=0
virtual bool TryGetAnalyzerAngle(double *analyzerAngle)=0
Information about the channel ratio.
Definition: libCZI_Metadata2.h:1078
virtual bool TryGetSource1(std::vector< std::wstring > *source1)=0
virtual bool TryGetConst2(double *c2)=0
virtual bool TryGetConst5(double *c5)=0
virtual bool TryGetSource2(std::vector< std::wstring > *source2)=0
virtual bool TryGetConst3(double *c3)=0
virtual bool TryGetConst6(double *c6)=0
virtual bool TryGetType(Type *type)=0
Type
Definition: libCZI_Metadata2.h:1102
@ OnlineLinearUnmixing
An enum constant representing the "online un-mixing calculation option".
@ OnlineReferenceRatio
An enum constant representing the "online reference ratio calculation option".
@ NoOnlineCalculation
An enum constant representing the "no online calculation option".
@ OnlineHillFunction
An enum constant representing the "online Hill function calculation option".
@ OnlineRatio
An enum constant representing the "online ratio calculation option".
@ OnlineSubtraction
An enum constant representing the "online subtraction calculation option".
@ OnlineSubtractionRatio
An enum constant representing the "online subtraction and ratio calculation option".
virtual bool TryGetConst1(double *c1)=0
virtual bool TryGetConst4(double *c4)=0
The SIM (Structured Illumination Microscopy) settings.
Definition: libCZI_Metadata2.h:915
virtual bool TryGetReflector(std::wstring *reflector)=0
virtual bool TryGetDiffractionEfficiency3(double *diffractionEfficiency3)=0
virtual bool TryGetGratingRotation(double *gratingRotation)=0
virtual bool TryGetGratingPeriod(double *gratingPeriod)=0
virtual bool TryGetGridDescription(std::wstring *gridDescription)=0
virtual bool TryGetSIMDeviceRef(std::wstring *simDeviceRef)=0
virtual bool TryGetDiffractionEfficiency2(double *diffractionEfficiency2)=0
virtual bool TryGetDiffractionEfficiency1(double *diffractionEfficiency1)=0
virtual bool TryGetFilterSetRef(std::wstring *filterSetRef)=0
The SPIM detection settings.
Definition: libCZI_Metadata2.h:903
virtual bool TryGetNADetection(double *naDetection)=0
The SPIM illumination settings.
Definition: libCZI_Metadata2.h:758
virtual std::shared_ptr< IInstrumentObjectiveSettings > GetIlluminationObjectiveSettings()=0
virtual bool TryGetBeamType(DimensionChannelSPIMIlluminationSettingsBeamType *beamType)=0
virtual std::shared_ptr< ISPIMIlluminationResonanceScannerSettings > GetResonanceScannerSettings()=0
virtual std::shared_ptr< ISPIMIlluminationGalvoScannerSettings > GetGalvoScannerSettings()=0
virtual bool TryGetNALightSheet(double *naLightSheet)=0
virtual bool TryGetCylinderLensRef(std::wstring *cylinderLensRef)=0
Information about the set of channels.
Definition: libCZI_Metadata2.h:354
virtual std::shared_ptr< IDimensionChannelInfo > GetChannel(int i) const =0
virtual int GetChannelCount() const =0
The fast airy scan settings.
Definition: libCZI_Metadata2.h:984
virtual bool TryGetIlluminationLine(Vector *illuminationLine)=0
virtual bool TryGetFiberMapping(std::vector< int > *mapping)=0
virtual bool TryGetEffectiveNAinY(double *effectiveNAinY)=0
virtual bool TryGetEffectiveNAinX(double *effectiveNAinX)=0
virtual bool TryGetIlluminationLinePixels(Vector *illuminationLinePixels)=0
The objective settings.
Definition: libCZI_Metadata2.h:792
virtual bool TryGetCorrectionControllerBottomThickness(double *correctioncontrollerbottomthickness)=0
virtual bool TryGetRefractiveIndex(double *refractiveindex)=0
virtual bool TryGetMedium(Medium *medium)=0
virtual bool TryGetObjectiveRef(std::wstring *objectiveRef)=0
Medium
Values that represent the medium.
Definition: libCZI_Metadata2.h:796
@ Water
An enum constant representing the medium water.
@ Oil
An enum constant representing the medium oil.
@ Other
An enum constant representing that some other medium was used.
@ Air
An enum constant representing the medium air.
@ Glycerol
An enum constant representing the medium glycerol.
virtual bool TryGetCorrectionControllerImagingDepth(double *correctioncontrollerimagingdepth)=0
virtual bool TryGetCorrectionCollar2(double *correctioncollar2)=0
virtual bool TryGetCorrectionCollar(double *correctioncollar)=0
virtual bool TryGetCorrectionControllerMode(std::wstring *correctioncontrollermode)=0
The settings of the SPIM galvo scanner.
Definition: libCZI_Metadata2.h:866
virtual bool TryGetOffset1Left(double *offset1Left)=0
virtual bool TryGetAmplitudeYScan(double *amplitudeYScan)=0
virtual bool TryGetOffset1Right(double *offset1Right)=0
virtual bool TryGetOffset2Left(double *offset2Left)=0
virtual bool TryGetFrequency(double *frequency)=0
virtual bool TryGetOffset2Right(double *offset2Right)=0
The SPIM illumination resonance scanner settings.
Definition: libCZI_Metadata2.h:854
virtual bool TryGetAmplitude(double *amplitude)=0
External interfaces, classes, functions and structs are found in the namespace "libCZI".
Definition: libCZI.h:31
DimensionChannelContrastMethod
Values that represent a contrast method, a technique used to achieve contrast, for the images in a ch...
Definition: libCZI_Metadata2.h:82
@ HoffmanModulation
Hoffman Modulation Contrast (HMC) was used.
@ Darkfield
Dark Field Imaging was used.
@ Other
Some other contrast method was used.
@ ObliqueIllumination
Oblique illumination was used.
@ Brightfield
Bright filed micrsocopy was used.
@ PolarizedLight
Polarization microscopy was used.
@ MultiPhotonFluorescence
Multi-photon excitation was employed.
@ DIC
Differential Interference Contrast was used.
@ Fluorescence
Fluorescence microscopy was used.
DimensionChannelAcquisitionMode
Definition: libCZI_Metadata2.h:42
@ ApertureCorrelation
The channel contains image from aperture correlation (a specific application of Structured Illuminati...
@ FIB
The channel contains images from focus ion beam microscopy.
@ FluorescenceCorrelationSpectroscopy
Unknown denotation.
@ SEM
The channel contains images from scanning electron microscopy.
@ LCM
The channel contains images from laser capture micro dissection.
@ SPIM
The channel contains images from selective-plane-illumination microscopy.
@ STORM
The channel contains images from stochastic optical reconstruction microscopy.
@ WideField
The channel contains images from wide field microscopy.
@ FluorescenceLifetime
Unknown denotation.
@ LaserScanningConfocalMicroscopy
The channel contains images from laser-scanning-confocal microscopy.
@ Other
Some other type of image formation.
@ StructuredIllumination
The channel contains images from structured-illumination microscopy system.
@ SecondHarmonicGenerationImaging
The channel contains images from Second harmonic imaging microscopy (SHIM).
@ STED
The channel contains images from stimulated emission depletion microscopy.
@ TotalInternalReflection
The channel contains images from a TIRF microscopy system.
@ FSM
The channel contains images from Fluorescence speckle microscopy.
@ NearFieldScanningOpticalMicroscopy
Unknown denotation.
@ SpinningDiskConfocal
The channel contains images from a confocal spinning-disk system.
@ TIRF
The channel contains images from total internal reflection fluorescence (TIRFM).
@ PALM
The channel contains images from photo-activation localization microscopy.
@ FIB_SEM
The channel contains images from focus ion beam and scanning electron microscopy.
@ MultiPhotonMicroscopy
The channel contains images an image from a multi-photon-microscopy system.
ChannelDetectorCameraProcessingMode
Values that represent the detector processing mode.
Definition: libCZI_Metadata2.h:388
@ None
No camera processing was used.
@ Widefield
Widefield processing mode was used.
@ Sectioned
Sectioned processing mode was used.
DimensionChannelIlluminationType
Values that represent the method of illumination used to acquire the channel.
Definition: libCZI_Metadata2.h:72
@ Epifluorescence
Objective was used to bring light to the specimen.
@ Other
Some other type of illumination was used.
@ Transmitted
Transmitted light was used.
ChannelDetectorSettingsBinning
Values that represent the binning mode of a detector.
Definition: libCZI_Metadata2.h:370
@ Other
Some other binning was used.
@ _1x1
1x1 pixels are used (i.e. no binning).
DimensionChannelLaserScanAveragingMethod
Values that represent the laser scan averaging methods.
Definition: libCZI_Metadata2.h:609
@ Mean
An enum constant representing the mean laser scan averaging method.
@ Other
An enum constant representing that some other averaging method was used.
@ Sum
An enum constant representing the sum laser scan averaging method.
DimensionChannelLaserScanLaserAttenuatorState
Values that represent the channel laser scan laser attenuator state.
Definition: libCZI_Metadata2.h:625
@ On
An enum constant representing the on option.
@ Off
An enum constant representing the off option.
DimensionChannelChannelType
Definition: libCZI_Metadata2.h:21
@ OnlineUnmixing
This channel contains the result of an online unmixing acquisition with a laser-scanning microscope.
@ AiryScanRaw
This channel contains the images of all sensors in the Airy-Scan-sensor-array.
@ AiryScanSum
This channel contains a processed (combined) super-resolution from an Airy-scan-acquisition in draft ...
@ PalWidefield
Unknown denotation.
@ Heightmap
This channel represents a heightmap. Note that additional restrictions apply when declaring a channel...
@ AiryScanSr
This channel contains the (processed) super-resolution image.
@ AiryScanMb
This channel contains the (processed) "multi-beam" image.
@ AiryScanVp
This channel contains the (processed) "virtual pinhole" image.
@ AiryScanRawSr
This channel contains the images of all sensors in the Airy-Scan-sensor-array.
@ SimWidefield
Unknown denotation.
@ AiryScanRingSheppardSum
This channel contains the Sheppard-sum created from 4 fiber-rings.
ChannelDetectorSettingsShutter
Values that represent the behavior of the shutter.
Definition: libCZI_Metadata2.h:380
@ Global
A global shutter mode was used.
@ Other
Some other shutter mode was used.
@ Rolling
A rolling shutter mode was used.
DimensionChannelLaserScanScanDirection
Values that represent the laser scan direction.
Definition: libCZI_Metadata2.h:602
@ Unidirectional
An enum constant representing the unidirectional scan direction.
@ Bidirectional
An enum constant representing the bidirectional scan direction.
PixelType
An enum representing a pixel-type.
Definition: libCZI_Pixels.h:114
DimensionChannelPinholeGeometry
Values that represent the pinhole geometry.
Definition: libCZI_Metadata2.h:97
@ Other
An enum constant representing "some other geometry".
@ Rectangular
An enum constant representing a rectangular pinhole.
@ Circular
An enum constant representing a circular pinhole.
DimensionChannelLaserScanAveragingMode
Values that represent the laser scan averaging mode.
Definition: libCZI_Metadata2.h:617
@ Frame
An enum constant representing the frame laser scan averaging mode.
@ Line
An enum constant representing the line laser scan averaging mode.
@ Other
An enum constant representing that some other line laser scan averaging mode was used.
DimensionChannelSPIMIlluminationSettingsBeamType
Values that represent the beam type for SPIM illumination.
Definition: libCZI_Metadata2.h:746
@ Other
An enum constant representing some other beam type.
@ Bessel
An enum constant representing the Bessel beam type.
@ Gauss
An enum constant representing the Gauss beam type.
DimensionChannelLaserScanScanningMode
Values that represent the laser scanning mode.
Definition: libCZI_Metadata2.h:591
@ Frame
An enum constant representing the frame scanning mode.
@ Line
An enum constant representing the line scanning mode.
@ Other
An enum constant representing some other scanning mode was used.
@ Spot
An enum constant representing the spot scanning mode.
@ FastFrame
An enum constant representing the fast frame scanning mode.
@ LineSequential
An enum constant representing the line sequential scanning mode.
Description of the polarization.
Definition: libCZI_Metadata2.h:484
double stokesParameter[4]
The stokes parameters, for validity of a value check the corresponding boolean.
Definition: libCZI_Metadata2.h:486
bool stokesParameterValid[4]
A boolean array, indicating whether the corresponding values are valid.
Definition: libCZI_Metadata2.h:485
A 2D-vector.
Definition: libCZI_Metadata2.h:988
double x
The x coordinate.
Definition: libCZI_Metadata2.h:989
double y
The y coordinate.
Definition: libCZI_Metadata2.h:990
This struct represents either a single value or a range.
Definition: libCZI_Metadata2.h:106
bool singleValue
True if this struct represents a single value. In this case, the property end is invalid.
Definition: libCZI_Metadata2.h:108
t end
The end of the range (only valid if singleValue is false).
Definition: libCZI_Metadata2.h:114
t startOrSingleValue
The start value of a range (in the case that singleValue is false) or the single value (if singleValu...
Definition: libCZI_Metadata2.h:111
A structure representing an R-G-B-color triple (as bytes).
Definition: libCZI_Pixels.h:98
Structure used to describe the spectral characteristic of light.
Definition: libCZI_Metadata2.h:119
InformationType type
The type of information given.
Definition: libCZI_Metadata2.h:128
InformationType
Values that represent the "type of information given".
Definition: libCZI_Metadata2.h:122
@ Ranges
An enum constant representing that a set of ranges are used to characterize the spectrum.
@ SinglePeak
An enum constant representing that a single peak is characterized.
double singlePeak
The single peak (only valid if "type" is "InformationType::SinglePeak").
Definition: libCZI_Metadata2.h:131
std::vector< RangeOrSingleValue< double > > ranges
The set of ranges (only valid if "type" is "InformationType::Ranges").
Definition: libCZI_Metadata2.h:134