2 #include "ScannerVectorFrameResonanceBiDi.h"
23 const double zoom = tmp->
zoom();
25 const double rangezoomed = range / zoom;
36 double center = devicecenter + tmp->
yoffset()*0.5*range;
37 if ( center - 0.5*yrangezoomed < daqparameters->outputs->minoutputscanner() )
41 const double yminzoomed = center - 0.5*yrangezoomed;
42 const double ymaxzoomed = center + 0.5*yrangezoomed;
45 const double yscanslope = yrangezoomed /
static_cast<double>(tmp->
YScanLines());
46 const double yretraceslope = -yrangezoomed /
static_cast<double>(tmp->
YRetraceLines());
47 const uint32_t yscanlines = 4*tmp->
YScanLines()/2;
48 const uint32_t ytotallines = 4*tmp->
YTotalLines()/2;
53 for (
size_t i = cy ; i < yscanlines ; i+= 4, y+= 2 )
54 vecptr->at(i) = scaletodevice(yminzoomed + y * yscanslope);
57 for (
size_t i = cy + yscanlines ; i < ytotallines ; i+= 4, y+= 2 )
58 vecptr->at(i) = scaletodevice(ymaxzoomed + y * yretraceslope);
64 const uint32_t scanlines = tmp->
YScanLines() / 2;
69 const int16_t pockelsdev = scaletodevice(tmp->
pockels());
73 for (
size_t i = cp ; i < cp + 4*cutofflines ; i += 4 )
74 vecptr->at(i) = scaletodevice(0.0);
75 for (
size_t i = cp + 4*cutofflines ; i < cp + 4*scanlines ; i += 4 )
76 vecptr->at(i) = pockelsdev;
77 for (
size_t i = cp + 4*scanlines ; i < cp + 4*totallines ; i += 4 )
78 vecptr->at(i) = scaletodevice(0.0);
virtual uint32_t YTotalLines() const
std::unique_ptr< Outputs > outputs
the output parameters
ScopeNumber< double > pockels
pockels cell value
void FillY()
Fill the samples for the y scanner axis.
Parameters for a ScannerVectorFrameResonance.
Parent class for frame scans.
ScopeNumber< double > xaspectratio
aspect ratio in x direction
Class for scaling to the full range of a datatype.
uint32_t YCutoffLines() const
ScopeNumber< double > yaspectratio
aspect ratio in y direction
ScannerVectorFrameResonanceBiDi(const ScannerVectorFillType &_filltype)
Base class for all Scope datatypes here, provides a uniform interface (and saves typing...).
void FillP()
Fill the samples for the Pockels cell (cutoff&retrace blanking for x and y)
void UpdateVector() override
Calculate the scanner vector based on the current parameters.
uint32_t YTotalLines() const override
This is the include file for standard system include files, or project specific include files that ar...
parameters::ScannerVectorFrameBasic * svparameters
current scanner vector parameter set (needs to be pointer for dynamic_cast in derived classes and bec...
uint32_t YRetraceLines() const
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...
uint32_t YScanLines() const
parameters::Daq * daqparameters
current daq parameter set
std::shared_ptr< std::vector< int16_t > > vecptr
the actual scanner vector (if fullframevector) with x, y, fast z, Pockels either interleaved (for ful...
Describes the scanner vector type.
ScopeNumber< double > yoffset
y offset
ScopeNumber< double > zoom
current zoom factor (from 1 to 20).