00001 /*---------------------------------------------------------------------------*\ 00002 * OpenSG * 00003 * * 00004 * * 00005 * Copyright 2000-2002 by OpenSG Forum * 00006 * * 00007 * contact: dirk@opensg.org, gerrit.voss@vossg.org, jbehr@zgdv.de * 00008 * * 00009 \*---------------------------------------------------------------------------*/ 00010 /*---------------------------------------------------------------------------*\ 00011 * License * 00012 * * 00013 * This library is free software; you can redistribute it and/or modify it * 00014 * under the terms of the GNU Library General Public License as published * 00015 * by the Free Software Foundation, version 2. * 00016 * * 00017 * This library is distributed in the hope that it will be useful, but * 00018 * WITHOUT ANY WARRANTY; without even the implied warranty of * 00019 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * 00020 * Library General Public License for more details. * 00021 * * 00022 * You should have received a copy of the GNU Library General Public * 00023 * License along with this library; if not, write to the Free Software * 00024 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 00025 * * 00026 \*---------------------------------------------------------------------------*/ 00027 /*---------------------------------------------------------------------------*\ 00028 * Changes * 00029 * * 00030 * * 00031 * * 00032 * * 00033 * * 00034 * * 00035 \*---------------------------------------------------------------------------*/ 00036 00037 00038 #include <stdlib.h> 00039 #include <stdio.h> 00040 00041 #include "OSGConfig.h" 00042 00043 OSG_BEGIN_NAMESPACE 00044 00045 00050 inline 00051 StateChunkPtr State::getChunk(UInt32 chunkId) 00052 { 00053 if(chunkId < _mfChunks.size()) 00054 return _mfChunks[chunkId]; 00055 00056 return NullFC; 00057 } 00058 00062 inline 00063 bool State::chunkPresent(UInt32 chunkId) 00064 { 00065 return chunkId < _mfChunks.size() && 00066 _mfChunks[chunkId] != NullFC ; 00067 } 00068 00073 inline 00074 bool State::chunkPresent(StateChunkPtr chunk) 00075 { 00076 const StateChunkClass * cls = chunk->getClass(); 00077 00078 for(UInt16 i = 0; i < cls->getNumSlots(); ++i) 00079 { 00080 if(chunkPresent(cls->getId() + i)) 00081 return true; 00082 } 00083 00084 return false; 00085 } 00086 00087 00088 OSG_END_NAMESPACE 00089
1.5.5