MrSID Decode SDK for Raster Reference Manual  9.5.4.4709
lti_navigator.h
Go to the documentation of this file.
00001 /* $Id$ */
00002 /* //////////////////////////////////////////////////////////////////////////
00003 //                                                                         //
00004 // This code is Copyright (c) 2004 LizardTech, Inc, 1008 Western Avenue,   //
00005 // Suite 200, Seattle, WA 98104.  Unauthorized use or distribution         //
00006 // prohibited.  Access to and use of this code is permitted only under     //
00007 // license from LizardTech, Inc.  Portions of the code are protected by    //
00008 // US and foreign patents and other filings. All Rights Reserved.          //
00009 //                                                                         //
00011 /* PUBLIC */
00012 
00013 #ifndef LTI_NAVIGATOR_H
00014 #define LTI_NAVIGATOR_H
00015 
00016 // lt_lib_mrsid_core
00017 #include "lti_scene.h"
00018 #include "lti_geoCoord.h"
00019 
00020 
00021 LT_BEGIN_NAMESPACE(LizardTech)
00022 
00023 
00024 
00030 class LTINavigator : public LTIScene
00031 {
00032    LT_DISALLOW_COPY_CONSTRUCTOR(LTINavigator);
00033 public:
00039    typedef enum
00040    {
00041       STYLE_LAX    = 1,    
00042       STYLE_STRICT = 2,    
00043       STYLE_CLIP   = 3     
00044    } Style;
00045 
00046 public:
00055    LTINavigator(const LTIImage& image);
00056 
00065    LTINavigator(const LTIImage& image,
00066                 const LTIScene& scene);
00067 
00071    ~LTINavigator();
00072 
00078    const LTIImage& getImage() const;
00079 
00089    bool isSceneValid() const;
00090 
00102    LT_STATUS moveBy(double xDelta, double yDelta, Style style);
00103 
00115    LT_STATUS moveTo(double x, double y, Style style);
00116 
00131    LT_STATUS zoomBy(double delta, Style style);
00132 
00146    LT_STATUS zoomTo(double mag, Style style);
00147 
00165    LT_STATUS bestFit(double maxWidth, double maxHeight, LTIScene& newScene);
00166 
00173    void roundScene();
00174 
00183    bool clipToImage();
00184 
00193    bool clipToScene(const LTIScene& scene);
00194 
00204    LT_STATUS setScene(const LTIScene& scene, Style style);
00205 
00206 
00215    LT_STATUS setSceneToIcon();
00216 
00217 
00226    LT_STATUS setSceneToFull();
00227 
00228 
00239    const LTIScene& getScene() const;
00240 
00248    LTIGeoCoord getGeoCoord() const;
00249 
00254 
00268    LT_STATUS setSceneAsULWH(double upperLeftX, double upperLeftY,
00269                             double width, double height,
00270                             double magnification);
00271 
00285    LT_STATUS setSceneAsULLR(double upperLeftX, double upperLeftY,
00286                             double lowerRightX, double lowerRightY,
00287                             double magnification);
00288 
00302    LT_STATUS setSceneAsCWH(double centerX, double centerY,
00303                            double width, double height,
00304                            double magnification);
00312 
00327    LT_STATUS setSceneAsGeoULWH(double upperLeftX, double upperLeftY,
00328                                double width, double height,
00329                                double magnification);
00330 
00345    LT_STATUS setSceneAsGeoULLR(double upperLeftX, double upperLeftY,
00346                                double lowerRightX, double lowerRightY,
00347                                double magnification);
00348 
00363    LT_STATUS setSceneAsGeoCWH(double centerX, double centerY,
00364                               double width, double height,
00365                               double magnification);
00368 protected:
00369    const LTIImage& m_image;
00370 };
00371 
00372 
00373 LT_END_NAMESPACE(LizardTech)
00374 
00375 
00376 #endif // LTI_NAVIGATOR_H