32 #ifndef _HSI_IGNORE_SECTION
46 #endif // _HSI_IGNORE_SECTION
116 virtual std::size_t getNrOfImages()
const =0;
119 virtual const SrcPanoImage& getImage(std::size_t nr)
const =0;
122 virtual void setImage(std::size_t nr,
const SrcPanoImage & img) =0;
132 virtual unsigned int addImage(
const SrcPanoImage& img) =0;
146 virtual void removeImage(
unsigned int nr) =0;
152 virtual void swapImages(
unsigned int img1,
unsigned int img2) =0;
158 virtual void moveImage(
size_t img1,
size_t img2) =0;
161 virtual SrcPanoImage getSrcImage(
unsigned imgNr)
const =0;
166 virtual void setSrcImage(
unsigned int nr,
const SrcPanoImage & img) =0;
174 virtual void setImageFilename(
unsigned int img,
const std::string & fname) =0;
187 virtual void activateImage(
unsigned int imgNr,
bool active=
true) =0;
190 virtual UIntSet getActiveImages()
const =0;
196 #define image_variable( name, type, default_value ) \
197 virtual void linkImageVariable##name(unsigned int sourceImgNr, unsigned int destImgNr) =0;
199 #undef image_variable
204 #define image_variable( name, type, default_value ) \
205 virtual void unlinkImageVariable##name(unsigned int imgNr) =0;
207 #undef image_variable
213 virtual std::size_t getNrOfCtrlPoints()
const =0;
216 virtual const ControlPoint & getCtrlPoint(std::size_t nr)
const =0;
219 virtual const CPVector & getCtrlPoints()
const =0;
222 virtual std::vector<unsigned int> getCtrlPointsForImage(
unsigned int imgNr)
const =0;
225 virtual void setCtrlPoints(
const CPVector & points) =0;
228 virtual unsigned int addCtrlPoint(
const ControlPoint & point) =0;
232 virtual void removeCtrlPoint(
unsigned int pNr) =0;
236 virtual void removeDuplicateCtrlPoints() =0;
240 virtual void changeControlPoint(
unsigned int pNr,
const ControlPoint & point) =0;
246 virtual int getNextCPTypeLineNumber()
const =0;
249 virtual void updateLineCtrlPoints() =0;
258 virtual void updateCtrlPointErrors(
const CPVector & controlPoints) =0;
266 virtual void updateCtrlPointErrors(
const UIntSet & imgs,
const CPVector & cps) =0;
289 virtual const VariableMap getImageVariables(
unsigned int imgNr)
const =0;
304 virtual void updateVariables(
unsigned int imgNr,
const VariableMap & var) =0;
310 virtual void updateVariable(
unsigned int imgNr,
const Variable &var) =0;
315 virtual void updateWhiteBalance(
double redFactor,
double blueFactor) =0;
327 virtual const int getOptimizerSwitch()
const =0;
329 virtual void setOptimizerSwitch(
const int newSwitch) =0;
332 virtual const int getPhotometricOptimizerSwitch()
const =0;
334 virtual void setPhotometricOptimizerSwitch(
const int newSwitch) =0;
352 virtual void printPanoramaScript(std::ostream & o,
357 const std::string & stripPrefix=
"")
const =0;
360 virtual void printStitcherScript(std::ostream & o,
362 const UIntSet & imgs)
const =0;
369 virtual void changeFinished() =0;
372 virtual void imageChanged(
unsigned int imgNr) =0;
374 virtual void updateMasksForImage(
unsigned int imgNr,
MaskPolygonVector newMasks)=0;
380 virtual void updateMasks(
bool convertPosMaskToNeg=
false)=0;
383 virtual void transferMask(
MaskPolygon mask,
unsigned int imgNr,
const UIntSet& targetImgs)=0;
385 virtual void updateOptimizeVector()=0;
387 virtual std::set<size_t> getRefImages()=0;
390 virtual void checkRefOptStatus(
bool& linkRefImgsYaw,
bool& linkRefImgsPitch,
bool& linkRefImgsRoll)=0;
489 virtual void clearObservers() =0;
497 virtual void changeFinished() =0;
500 virtual void clearDirty() =0;
507 virtual void imageChanged(
unsigned int imgNr) =0;
526 virtual bool needsOptimization() =0;
529 virtual void markAsOptimized(
bool optimized=
true) =0;
539 #endif // _PANORAMA_H
virtual void panoramaChanged(Panorama &pano)=0
Notification about a Panorama change.
PanoramaDataMemento()
force pure abstract behaviour
virtual void panoramaImagesChanged(Panorama &pano, const UIntSet &changed)=0
notifies about changes to images
std::vector< UIntSet > UIntSetVector
virtual ~PanoramaObserver()
a variable has a value and a name.
represents a control point
std::set< unsigned int > UIntSet
std::vector< VariableMap > VariableMapVector
virtual ~PanoramaDataMemento()
std::vector< unsigned int > UIntVector
std::vector< MaskPolygon > MaskPolygonVector
virtual ~ManagedPanoramaData()
std::map< std::string, Variable > VariableMap
this handler class will receive change events from the Panorama.
Memento class for a PanoramaData object.
std::vector< ControlPoint > CPVector
std::vector< std::set< std::string > > OptimizeVector
All variables of a source image.
This file specifies what image variables SrcPanoImg should have.
base class, which stores one mask polygon