cvgshape.h

来自「开源的电子海图程序」· C头文件 代码 · 共 138 行

H
138
字号
/* GHelm - Nautical Navigation Software * Copyright (C) 2004 Jon Michaelchuck * * This application is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License version 2 * as published by the Free Software Foundation. * * This software 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 * General Public License for more details. * * You should have received a copy of the GNU General Public * License along with this software; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA. */#ifndef CVGSHAPE_H_#define CVGSHAPE_H_#include <libxml/tree.h>#include <libxml/parser.h>#include <vector>#include "cvgstrokegroup.h"/** * Fillable cvg object */class CVGFillable{     public:        CVGFillable();        ~CVGFillable() { }        int Load(xmlDocPtr doc, xmlNodePtr cur);        bool filled;        float fill_rgb[3];};/** * Shape cvg object */class CVGShape{    public:        CVGShape() { }        virtual ~CVGShape() { }        virtual int Load(xmlDocPtr doc, xmlNodePtr cur) = 0;        virtual void Render() = 0;        CVGStrokeGroup stroke_group;};/** * cvg rectangle */class CVGRect : public CVGShape, public CVGFillable{    public:        CVGRect();        ~CVGRect();        int Load(xmlDocPtr doc, xmlNodePtr cur);        void Render();        double *p0;        double *p1;        double *p2;        double *p3;};/** * cvg polygon */class CVGPolygon : public CVGShape, public CVGFillable{    public:        CVGPolygon() { }        ~CVGPolygon() { }        int Load(xmlDocPtr doc, xmlNodePtr cur);        void Render();        std::vector<double *> verts;};/** * cvg polygon */class CVGPolyline : public CVGShape, public CVGFillable{    public:        CVGPolyline() { }        ~CVGPolyline() { }        int Load(xmlDocPtr doc, xmlNodePtr cur);        void Render();        std::vector<double *> verts;};/** * cvg circle */class CVGCircle : public CVGShape, public CVGFillable{    public:        CVGCircle() { }        ~CVGCircle() { }        int Load(xmlDocPtr doc, xmlNodePtr cur);        void Render();        double x, y;        double radius;};/** * cvg ellipse */class CVGEllipse : public CVGShape, public CVGFillable{    public:        CVGEllipse() { }        ~CVGEllipse() { }        int Load(xmlDocPtr doc, xmlNodePtr cur);        void Render();        double x, y;        double xradius, yradius;};/** * cvg line */class CVGLine : public CVGShape{    public:        CVGLine();        ~CVGLine();        int Load(xmlDocPtr doc, xmlNodePtr cur);        void Render();        double *p0;        double *p1;};#endif

⌨️ 快捷键说明

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