MapMatrixProjectorXML.cxx

Go to the documentation of this file.
00001 
00012 // for truncation warning
00013 #ifdef _MSC_VER
00014 #include "msdevstudio/MSconfig.h"
00015 #endif
00016 
00017 #include "MapMatrixProjectorXML.h"
00018 
00019 #include "XmlController.h"
00020 #include "XmlDocument.h"
00021 #include "XmlElement.h"
00022 
00023 #include "axes/Range.h"
00024 #include "projectors/MapMatrixProjector.h"
00025 
00026 namespace hippodraw {
00027 
00028 MapMatrixProjectorXML::MapMatrixProjectorXML ( XmlController * controller )
00029   : BaseXML ( "MapMatrixProjector", controller ),
00030     m_x_bins ( "xbins" ),
00031     m_y_bins ( "ybins" ),
00032     m_x_step ( "xstep" ),
00033     m_y_step ( "ystep" ),
00034     m_x_orig ( "xorig" ),
00035     m_y_orig ( "yorig" )
00036 {
00037 }
00038 
00039 XmlElement *
00040 MapMatrixProjectorXML::
00041 createElement ( const MapMatrixProjector & projector )
00042 {
00043   XmlElement * tag = BaseXML::createElement (); // in base class
00044 
00045   const void * addr = reinterpret_cast < const void * > ( & projector );
00046   int id = m_controller -> getId ( addr );
00047   setId ( *tag, id );
00048 
00049   int number = projector.getNumberOfBins ( Axes::X );
00050   tag -> setAttribute ( m_x_bins, number );
00051   number = projector.getNumberOfBins ( Axes::Y );
00052   tag -> setAttribute ( m_y_bins, number );
00053 
00054   double step = projector.getBinWidth ( Axes::X );
00055   tag->setAttribute ( m_x_step, step );
00056   step = projector.getBinWidth ( Axes::Y );
00057   tag->setAttribute ( m_y_step, step );
00058 
00059   double orig = projector.getOffset ( Axes::X );
00060   tag->setAttribute ( m_x_orig, orig );
00061   orig = projector.getOffset ( Axes::Y );
00062   tag->setAttribute ( m_y_orig, orig );
00063 
00064   return tag;
00065 }
00066 
00067 void
00068 MapMatrixProjectorXML::
00069 setAttributes ( const XmlElement * element, ProjectorBase * projector )
00070 {
00071   int number = 0;
00072   bool ok = element -> attribute ( m_x_bins, number );
00073   projector -> setNumberOfBins ( Axes::X, number );
00074   ok = element -> attribute ( m_y_bins, number );
00075   projector -> setNumberOfBins ( Axes::Y, number );
00076 
00077   double value = 0.;
00078   ok = element -> attribute ( m_x_step, value );
00079   projector -> setBinWidth ( Axes::X, value );
00080   ok = element -> attribute ( m_y_step, value );
00081   projector -> setBinWidth ( Axes::Y, value );
00082 
00083   ok = element -> attribute ( m_x_orig, value );
00084   projector -> setOffset ( Axes::X, value );
00085   ok = element -> attribute ( m_y_orig, value );
00086   projector -> setOffset ( Axes::Y, value );
00087 
00088   projector -> matrixTranspose(true);
00089 }
00090 
00091 } // namespace hippodraw
00092 

Generated for HippoDraw Class Library by doxygen