ResidualVM logo ResidualVM website - Forums - Contact us BuildBot - Doxygen - Wiki curved edge

engines/grim/primitives.h

Go to the documentation of this file.
00001 /* ResidualVM - A 3D game interpreter
00002  *
00003  * ResidualVM is the legal property of its developers, whose names
00004  * are too numerous to list here. Please refer to the AUTHORS
00005  * file distributed with this source distribution.
00006  *
00007  * This program is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License
00009  * as published by the Free Software Foundation; either version 2
00010  * of the License, or (at your option) any later version.
00011  *
00012  * This program is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00015  * GNU General Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License
00018  * along with this program; if not, write to the Free Software
00019  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
00020  *
00021  */
00022 
00023 #ifndef GRIM_PRIMITIVESOBJECT_H
00024 #define GRIM_PRIMITIVESOBJECT_H
00025 
00026 #include "common/rect.h"
00027 
00028 #include "engines/grim/pool.h"
00029 #include "engines/grim/color.h"
00030 
00031 namespace Grim {
00032 
00033 class SaveGame;
00034 
00035 class PrimitiveObject : public PoolObject<PrimitiveObject> {
00036 public:
00037     PrimitiveObject();
00038     ~PrimitiveObject();
00039 
00040     enum PrimType {
00041         RectangleType = 1,
00042         LineType      = 2,
00043         PolygonType   = 3,
00044         InvalidType   = 4
00045     };
00046 
00047     static int32 getStaticTag() { return MKTAG('P', 'R', 'I', 'M'); }
00048 
00049     void createRectangle(const Common::Point &p1, const Common::Point &p2, const Color &color, bool filled);
00050     void createLine(const Common::Point &p1, const Common::Point &p2, const Color &color);
00051     void createPolygon(const Common::Point &p1, const Common::Point &p2, const Common::Point &p3, const Common::Point &p4, const Color &color);
00052     Common::Point getP1() const { return _p1; }
00053     Common::Point getP2() const { return _p2; }
00054     Common::Point getP3() const { return _p3; }
00055     Common::Point getP4() const { return _p4; }
00056     void setPos(int x, int y);
00057     void setEndpoint(int x, int y);
00058     void setColor(const Color &color) { _color = color; }
00059     Color getColor() const { return _color; }
00060     PrimType getType() const { return _type; }
00061     bool isFilled() const { return _filled; }
00062     void draw() const;
00063     void saveState(SaveGame *state) const;
00064     bool restoreState(SaveGame *state);
00065 
00066 private:
00067     Common::Point _p1, _p2, _p3, _p4;
00068     Color _color;
00069     bool _filled;
00070     PrimType _type;
00071 };
00072 
00073 } // end of namespace Grim
00074 
00075 #endif


Generated on Sat Mar 16 2019 05:01:50 for ResidualVM by doxygen 1.7.1
curved edge   curved edge