UnivariateConstrainedLayer.h

00001 
00007 #ifndef _UnivariateConstrainedLayer_h
00008 #define _UnivariateConstrainedLayer_h
00009 
00010 // SYSTEM INCLUDES
00011 //
00012 
00013 // PROJECT INCLUDES
00014 //
00015 
00016 // LOCAL INCLUDES
00017 //
00018 #include "PointControl.h"
00019 #include "UnivariateConstraintsLayer.h"
00020 #include "UnivariateFunctionLayer.h"
00021 #include "UnivariateResultLayer.h"
00022 
00023 // FORWARD REFERENCES
00024 //
00025 
00026 
00027 class UnivariateConstrainedLayer
00028     : public UnivariateResultLayer
00029 {
00030 public:
00031 // LIFECYCLE
00032 
00035     UnivariateConstrainedLayer(
00036             const PlotControl&                          plotControl,
00037             const Result&                               result,
00038             CountedPtr<PlotLayer>                       cpFunctionLayer,
00039             std::auto_ptr<UnivariateConstraintsLayer>   apConstraintsLayer,
00040             std::auto_ptr<UnivariateFunctionLayer>      apPenaltyLayer);
00041 
00044     UnivariateConstrainedLayer(const UnivariateConstrainedLayer& from);
00045 
00048     ~UnivariateConstrainedLayer(void);
00049 
00050 // OPERATORS
00051 // OPERATIONS
00052 
00053     virtual void    Draw(wxDC& dc) const;
00054 
00055     virtual vector<ToolbarTool> CreateTools(PlotControl* pPlotControl);
00056 
00059     static std::auto_ptr<ResultLayer>   Create(
00060                                 const PlotControl&      plotControl,
00061                                 const Result&           result,
00062                                 CountedPtr<PlotLayer>   cpFunctionLayer);
00063 
00064 // ACCESS
00065 
00066     virtual Region  IterationBoundingBox(unsigned iterationNumber) const;
00067 
00068 // INQUIRY
00069 
00070 protected:
00071 private:
00072 
00073     void            DrawIteration(wxDC&     dc,
00074                                   unsigned  iterationNumber,
00075                                   bool      highlight) const;
00076 
00077 
00078     // Nie może to być auto_ptr, bo warstwy są przechowywane w kontenerze.
00079     CountedPtr<UnivariateConstraintsLayer>  mcpConstraintsLayer;
00080     CountedPtr<UnivariateFunctionLayer>     mcpPenaltyLayer;
00081 
00082     const static void*  mRegistrationDummy;
00083 };
00084 
00085 // INLINE METHODS
00086 //
00087 
00088 // EXTERNAL REFERENCES
00089 //
00090 
00091 #endif  // _UnivariateConstrainedLayer_h

Wygenerowano Fri Sep 29 21:04:49 2006 dla EduOptim2 programem  doxygen 1.4.6