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 pgRend_Light; 00033 00034 00039 class PG_API pgMdl 00040 { 00041 public: 00042 pgDefineException(ExceptionInvalidArgument); 00043 pgDefineException(ExceptionNotInitialized); 00044 00045 pgMdl(); 00046 ~pgMdl(); 00047 00048 void init(pgID mdl_data_id, pgID scr_id); 00049 void init(pgID mdl_data_id, pgDraw* parent); 00050 00051 const pgMdlData* getModelData() const; 00052 00053 pgID getTextureID() const; 00054 void setTextureID(pgID tex_id); 00055 00056 pgID getLightSetID() const; 00057 void setLightSetID(pgID lts_id); 00058 00059 pgDraw* getRootDraw(); 00060 pgDraw* getNodeDraw(u16 node_index); 00061 00062 private: 00063 pgMdl(const pgMdl&); 00064 void operator=(const pgMdl&); 00065 00066 void init2(pgID mdl_data_id, pgID scr_id, pgDraw* parent); 00067 void uninit(); 00068 00069 pgMdlData m_mdl_data; 00070 pgDraw** m_draw_ptr; 00071 pgRend_Light** m_rend_ptr; 00072 pgNode m_root_node; 00073 u16 m_node_num; 00074 pgID m_lts_id; 00075 };
1.5.8