Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions surfacemanager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2416,6 +2416,7 @@ textres SurfaceManager::Phase2(QList<rotationDef *> list, QList<wavefront *> inp
cp->m_zRangeMode = "Fractions of Wave";
cp->contourWaveRangeChanged(inputs[0]->std* 3);
wavefront * wf = new wavefront(*inputs[i]);
wf->cloneMatricesFrom(*inputs[i]);


wf->data = wf->workData = standwfs[i];
Expand Down Expand Up @@ -2461,6 +2462,7 @@ textres SurfaceManager::Phase2(QList<rotationDef *> list, QList<wavefront *> inp

//display average of all stand zernwavefronts
wavefront * wf2 = new wavefront(*inputs[0]);
wf2->cloneMatricesFrom(*inputs[0]);
wf2->data = wf2->workData = standavgZernMat ;
cv::resize(inputs[0]->mask,wf2->mask, cv::Size(wf2->data.cols, wf2->data.rows));
wf2->workMask = wf2->mask;
Expand Down
43 changes: 6 additions & 37 deletions wavefront.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,42 +22,11 @@ wavefront::wavefront():
{
}

wavefront::~wavefront()
void wavefront::cloneMatricesFrom(const wavefront &wf)
{

data.release();
mask.release();
workData.release();
workMask.release();
InputZerns.clear();
nulledData.release();

data = wf.data.clone();
nulledData = wf.nulledData.clone();
mask = wf.mask.clone();
workData = wf.workData.clone();
workMask = wf.workMask.clone();
}
wavefront::wavefront( const wavefront &wf):
data(wf.data.clone()),
nulledData(wf.nulledData.clone()),
mask(wf.mask.clone()),
workData(wf.workData.clone()),
workMask(wf.workMask.clone()),
InputZerns(wf.InputZerns),
zernEnablesApplied(wf.zernEnablesApplied),
gaussian_diameter(wf.gaussian_diameter),
gbEnabled(wf.gbEnabled),
gbValue(wf.gbValue),
wasSmoothed(wf.wasSmoothed),
useSANull(wf.useSANull),
GBSmoothingValue(wf.GBSmoothingValue),
m_origin(wf.m_origin),
m_manuallyInverted(wf.m_manuallyInverted),
lambda(wf.lambda),
m_outside(wf.m_outside),
m_inside(wf.m_inside),
diameter(wf.diameter),
roc(wf.roc),
min(wf.min),
max(wf.max),
std(wf.std),
mean(wf.mean),
dirtyZerns(wf.dirtyZerns)
{}

11 changes: 6 additions & 5 deletions wavefront.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,12 @@ class wavefront
{
public:
wavefront();
~wavefront();
wavefront( const wavefront &wf); // copy constructor doing deep copy of cv::Mat
wavefront( wavefront && ) = delete; // move constructor, deleted because unused
wavefront& operator=( const wavefront & ) = default; // copy operator not doing deep copy of cv::mat
wavefront& operator=(wavefront &&) = delete; // move operator, deleted because unused
~wavefront() = default;
wavefront( const wavefront &wf) = default;
wavefront( wavefront && ) = default;
wavefront& operator=( const wavefront & ) = default;
wavefront& operator=(wavefront &&) = default;
void cloneMatricesFrom(const wavefront &wf);

cv::Mat_<double> data;
cv::Mat_<double> nulledData;
Expand Down
Loading