Scope
ScannerVectorFrameBasic.h
1 #pragma once
2 
3 #include "parameters/Scope.h"
4 #include "ScopeDatatypes.h"
5 
6 namespace scope {
7 
14 
15 protected:
18 
21 
23  typedef std::vector<int16_t>::iterator iterator;
24 
27 
30 
32  parameters::SCOPE_FPUZCONTROL_T* zparameters;
33 
36  std::shared_ptr<std::vector<int16_t>> vecptr;
37 
39  std::shared_ptr<std::vector<std::size_t>> lookup;
40 
42  int32_t lookup_rotation;
43 
45  virtual void UpdateVector();
46 
47 public:
51  ScannerVectorFrameBasic(const ScannerVectorType& _type, const ScannerVectorFillType& _filltype);
52 
54  virtual ~ScannerVectorFrameBasic();
55 
57  virtual void SetParameters(parameters::Daq* const _daqparameters, parameters::ScannerVectorFrameBasic* const _svparameters, parameters::SCOPE_FPUZCONTROL_T* const _zparameters);
58 
60  virtual void SetPockels(const double& _pockelsval);
61 
63  virtual void SetZoom(const double& _zoom);
64 
66  //virtual void SetFastZ(const double& _fastz);
67 
70  virtual void SetScannderdelay(const uint32_t& _scannerdelaysamples);
71 
76  virtual std::shared_ptr<const std::vector<int16_t>> GetInterleavedVector() const;
77 
79  virtual std::shared_ptr<const std::vector<size_t>> GetLookupVector() const;
80 
83 
86 
87 public:
89  static std::unique_ptr<ScannerVectorFrameBasic> Factory(const ScannerVectorType& _type, const ScannerVectorFillType& _filltype);
90 
91 };
92 
94 typedef std::shared_ptr<ScannerVectorFrameBasic> ScannerVectorFrameBasicPtr;
95 
96 
97 }
virtual std::shared_ptr< const std::vector< int16_t > > GetInterleavedVector() const
virtual void UpdateVector()
Calculate the scanner vector based on the current parameters.
Parent class for frame scans.
Mode
The different types of scanner vector fill types.
virtual void SetPockels(const double &_pockelsval)
Set current pockels value and update.
ScannerVectorFrameBasic(const ScannerVectorType &_type, const ScannerVectorFillType &_filltype)
Initialize data vector.
All parameters for scanner data generation and pixel acquisition If you add/remove parameters or deri...
Definition: IO.h:747
Mode
The different types of scans.
std::vector< int16_t >::iterator iterator
iterator definition, just handy
virtual parameters::ScannerVectorFrameBasic * GetSVParameters() const
Base class for all Scope datatypes here, provides a uniform interface (and saves typing...).
virtual ~ScannerVectorFrameBasic()
We need a virtual destructor here, so that derived types get correctly destroyed. ...
ScannerVectorFillType FillType() const
parameters::ScannerVectorFrameBasic * svparameters
current scanner vector parameter set (needs to be pointer for dynamic_cast in derived classes and bec...
In here all declarations for all kinds of datatypes Scope needs.
int32_t lookup_rotation
how much is the current lookup vector rotated to adjust for scannerdelay
std::shared_ptr< std::vector< std::size_t > > lookup
gives the position in the image vector for each position in the acquired data vector (keep in mind th...
static std::unique_ptr< ScannerVectorFrameBasic > Factory(const ScannerVectorType &_type, const ScannerVectorFillType &_filltype)
A static factory method for scan vectors.
const ScannerVectorFillTypeHelper::Mode filltype
The fill type.
virtual void SetZoom(const double &_zoom)
Set current zoom factor and update.
virtual std::shared_ptr< const std::vector< size_t > > GetLookupVector() const
parameters::Daq * daqparameters
current daq parameter set
virtual void SetParameters(parameters::Daq *const _daqparameters, parameters::ScannerVectorFrameBasic *const _svparameters, parameters::SCOPE_FPUZCONTROL_T *const _zparameters)
Set current parameters and update vector.
std::shared_ptr< std::vector< int16_t > > vecptr
the actual scanner vector (if fullframevector) with x, y, fast z, Pockels either interleaved (for ful...
Parameters for a ScannerVectorFrameBasic.
Definition: Framescan.h:45
const ScannerVectorTypeHelper::Mode type
Type/scan mode of this vector.
parameters::SCOPE_FPUZCONTROL_T * zparameters
current fast z parameter set
virtual void SetScannderdelay(const uint32_t &_scannerdelaysamples)
Set the current position for the fast z control.