00001 /* 00002 Copyright (c) 2007-2009 Takashi Kitao 00003 All rights reserved. 00004 00005 Redistribution and use in source and binary forms, with or without 00006 modification, are permitted provided that the following conditions 00007 are met: 00008 00009 1. Redistributions of source code must retain the above copyright 00010 ` notice, this list of conditions and the following disclaimer. 00011 00012 2. Redistributions in binary form must reproduce the above copyright 00013 ` notice, this list of conditions and the following disclaimer in the 00014 ` documentation and/or other materials provided with the distribution. 00015 00016 3. The name of the author may not be used to endorse or promote products 00017 ` derived from this software without specific prior written permission. 00018 00019 THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 00020 IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 00021 OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 00022 IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 00023 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 00024 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 00025 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 00026 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 00027 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 00028 THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00029 */ 00030 00031 00032 class pgLts; 00033 00034 00039 class PG_API pgLit 00040 { 00041 friend class pgLts; 00042 00043 public: 00044 pgDefineException(ExceptionInvalidArgument); 00045 00046 pgLit* getPrevN() const; 00047 pgLit* getNextN() const; 00048 00049 pgID getID() const; 00050 00051 bool isActive() const; 00052 void setActive(bool is_active); 00053 00054 const pgVec& getPos() const; 00055 void setPos(const pgVec& pos); 00056 00057 r32 getInnerRadius() const; 00058 r32 getOuterRadius() const; 00059 void setRadius(r32 inner_rad, r32 outer_rad); 00060 00061 pgCol getColor() const; 00062 void setColor(pgCol col); 00063 00064 private: 00065 pgLit(pgID lts_id); 00066 void operator=(const pgLit&); 00067 00068 void updateBound(); 00069 00070 pgList<pgLit>::Item m_item; 00071 pgID m_id; 00072 pgType<u8, bool> m_is_active; 00073 pgVec m_pos; 00074 r32 m_inner_rad; 00075 r32 m_outer_rad; 00076 pgCol m_col; 00077 u16 m_col_int; 00078 pgVec m_min_bound; 00079 pgVec m_max_bound; 00080 r32 m_sq_inner_rad; 00081 r32 m_sq_outer_rad; 00082 };
1.5.8