In GUI this class should not modified directly. Use instead a command object that inherit from PanoCommand (otherwise it will break undo/redo functionality). Consider it in GUI as read only.
If you want to modify several parameters in one rush, use a HuginBase::VariableMapVector instead.
If you want to transform from image to panospace, create the transformation stack with HuginBase::PTools::Transform::createInvTransform. If you want to transform coordinates from panorama space to the coordinates of a single image use HuginBase::PTools::Transform::createTransform. Both require a HuginBase::SrcPanoImage to describe the image and a HuginBase::PanoramaOptions to describe the panospace.
Now you can transfrom the coordinates with HuginBase::PTools::Transform::transformImgCoord. There are some cases, where it is not possible to transform the coordinates, e.g. in rectilinear transformation or when the project has non-zero translation parameters. So always check the return value of transformImgCoord, if the transformation could be executed.
HuginBase::PTools::Transform trans; trans.createInvTransform(srcImage,options); trans.transformImgCoord(x_out,y_out,x_in,y_in);
XRC is used for the GUI design. Each custom Panel should have its own XRC file, so that people can work with on different parts of the GUI without to much trouble. The MainFrame will then use the unknown class to load the different custom Panel. CPEditorPanel is an example how this can be done. Note that there is only a global namespace for all xrc files. Names in the xrc files should therefore start with a prefix that indicates the parent panel.