⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 path.hpp

📁 一个gps小工具包
💻 HPP
字号:
/// @file Path.hpp Class to represent a series of points. Class declarations.//============================================================================////  This file is part of GPSTk, the GPS Toolkit.////  The GPSTk is free software; you can redistribute it and/or modify//  it under the terms of the GNU Lesser General Public License as published//  by the Free Software Foundation; either version 2.1 of the License, or//  any later version.////  The GPSTk is distributed in the hope that it will be useful,//  but WITHOUT ANY WARRANTY; without even the implied warranty of//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the//  GNU Lesser General Public License for more details.////  You should have received a copy of the GNU Lesser General Public//  License along with GPSTk; if not, write to the Free Software Foundation,//  Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA//  //  Copyright 2004, The University of Texas at Austin////============================================================================#ifndef VPLOT_PATH_H#define VPLOT_PATH_H#include<string>#include<list>#include<utility> // Provides "pair" definition#include "VPlotException.hpp"namespace vplot{   /** \addtogroup BasicVectorGraphics */    //@{   /**    * This class describes a point as an (x,y) coordinate.    */   struct Point {      /// X coordinate or abscissa      double x;      /// Y coordinate or ordinate      double y;       };   /**    * This class defines a sequence of points. The points can be used    * to specify a polygon, a line, Bezier curve, or anything that    * requires multiple points as input. The points are relative to    * an origin point. The origin point is in the page refrence frame.     * Note that this class inherits    * from list<pair<double, double>, which means that it provides the    * standard C++ container interface for just what it is, a list of points.    * But there are additional methods for easy construction and use of this    * dataset.    * TODO: Consider using another container class for which lookups are O^n.    */   class Path: public std::list< std::pair<double,double> > {   public:            /**       * Default constructor. An empty path.       * @param iOriginX absolute X coordinate of the origin in points       * @param iOriginY absolute Y coordinate of the origin in points       */      Path(double iOriginX, double iOriginY)             : originX(iOriginX), originY(iOriginY)         {}      /**       * Sets a new origin point.       * @param X x coordinate of new origin.       * @param Y y coordinate of new origin       */      void setOrigin(double X, double Y)      { originX = X; originY = Y; return; }      /**       * Sets input vaiables equal to the origin values.       * @param X to be x coordinate of origin       * @param Y to be y coordinate of origin       */      void getOrigin(double& X, double& Y) const         { X = originX; Y = originY; return; }            /**       * Mutator. Adds a new point in the absolute frame.       * @param X X-coordinate of the new point in the absolute frame       * @param Y Y-coordinate of the new point in the absolute frame       */       void addPointAbsolute(double X, double Y);     /**      * Mutator. Adds a new point, with respect to the path's origin.      * Note the origin is not the starting point of the path but a special      * point that is used to simplify rotation and translation of the path      * as a whole.      * @param X X-coordinate of the new point in the path's frame      * @param Y Y-coordinate of the new point in the path's frame      */       void addPointRelative(double X, double Y);     /**      * Mutator. Adds a new pont, relative to the last point added      * @param DX DX distance along X axis to new point from old one       * @param DY DY distance along Y axis to new point from old one       */      void addPointDelta(double DX, double DY) throw (VPlotException);     /**      * Rotate the set of points about a pivot point.      * @param angleDegrees Angle of rotation in degrees      * @param rx X coordinate of point of rotation. Defaults to start point      * @param ry Y coordinate of point of rotation. Defaults to start point      */     void rotate(double angleDegrees, double rx, double ry);     /**      * Rotate the set of points about the first point in the series.      * @param angleDegrees Angle of rotation in degrees      */     void rotate(double angleDegrees);     /**      * Move the set of points.      * @param deltaX Increment of x coordinates to move the line      * @param deltaY Increment of y coordinates to move the line      */     void translate(double deltaX, double deltaY);     /**      * Scale the set of points with respect to given point.      * @param factor Dimensionless scaling factor      * @param sx X coordinate of point of scaling. Defaults to start point      * @param sy Y coordinate of point of scalling. Defaults to start point      */     void scale(double factor, double sx, double sy);        /// Obtain coordinates to the global frame     Path asAbsolute(void) const;         protected:   private:      /// The x origin for the path.      double originX;       /// The y origin for the path.      double originY;   }; // class Path   //@}} // namespace vplot#endif //VPLOT_PLOT_PATH_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -