00001 00002 // SPARK particle engine // 00003 // Copyright (C) 2008-2009 - Julien Fryer - julienfryer@gmail.com // 00004 // // 00005 // This software is provided 'as-is', without any express or implied // 00006 // warranty. In no event will the authors be held liable for any damages // 00007 // arising from the use of this software. // 00008 // // 00009 // Permission is granted to anyone to use this software for any purpose, // 00010 // including commercial applications, and to alter it and redistribute it // 00011 // freely, subject to the following restrictions: // 00012 // // 00013 // 1. The origin of this software must not be misrepresented; you must not // 00014 // claim that you wrote the original software. If you use this software // 00015 // in a product, an acknowledgment in the product documentation would be // 00016 // appreciated but is not required. // 00017 // 2. Altered source versions must be plainly marked as such, and must not be // 00018 // misrepresented as being the original software. // 00019 // 3. This notice may not be removed or altered from any source distribution. // 00021 00022 00023 #ifndef H_SPK_POINTRENDERERINTERFACE 00024 #define H_SPK_POINTRENDERERINTERFACE 00025 00026 #include "Core/SPK_DEF.h" 00027 00028 namespace SPK 00029 { 00034 enum PointType 00035 { 00036 POINT_SQUARE, 00037 POINT_CIRCLE, 00038 POINT_SPRITE, 00039 }; 00040 00045 class PointRendererInterface 00046 { 00047 public : 00048 00050 // Constructor // 00052 00058 PointRendererInterface(PointType type = POINT_SQUARE,float size = 1.0f); 00059 00061 // Destructor // 00063 00065 virtual ~PointRendererInterface() {} 00066 00068 // Setters // 00070 00079 virtual bool setType(PointType type); 00080 00085 virtual void setSize(float size); 00086 00088 // Getters // 00090 00095 PointType getType() const; 00096 00101 float getSize() const; 00102 00103 protected : 00104 00105 PointType type; 00106 float size; 00107 }; 00108 00109 00110 inline PointRendererInterface::PointRendererInterface(PointType type,float size) : 00111 type(type), 00112 size(size) 00113 {} 00114 00115 inline bool PointRendererInterface::setType(PointType type) 00116 { 00117 this->type = type; 00118 return true; 00119 } 00120 00121 inline void PointRendererInterface::setSize(float size) 00122 { 00123 this->size = size; 00124 } 00125 00126 inline PointType PointRendererInterface::getType() const 00127 { 00128 return type; 00129 } 00130 00131 inline float PointRendererInterface::getSize() const 00132 { 00133 return size; 00134 } 00135 } 00136 00137 #endif