最新osg包

源代码在线查看: object.cpp

软件大小: 5430 K
上传用户: xxjjyy1237
关键词: osg
下载地址: 免注册下载 普通下载 VIP

相关代码

				/**********************************************************************				 *				 *  FILE:           Object.cpp				 *				 *  DESCRIPTION:    Read/Write osg::Object in binary format to disk.				 *				 *  CREATED BY:     Auto generated by iveGenerated				 *                  and later modified by Rune Schmidt Jensen.				 *				 *  HISTORY:        Created 17.3.2003				 *				 *    Copyright 2003 VR-C				 **********************************************************************/								#include "Exception.h"				#include "Object.h"								using namespace ive;								void Object::write(DataOutputStream* out)				{				    // Write Object's identification.				    out->writeInt(IVEOBJECT);								    if ( out->getVersion() >= VERSION_0012 )				    {				        // Write Name				        out->writeString(getName());				    }								    // Write Object's properties.				    switch(getDataVariance())				    {				        case(osg::Object::STATIC): out->writeChar((char)0); break;				        case(osg::Object::DYNAMIC): out->writeChar((char)1); break;				        case(osg::Object::UNSPECIFIED): out->writeChar((char)2); break;				    }				    				    if ( out->getVersion() >= VERSION_0031)				    {				        const osg::Object* object = dynamic_cast(getUserData());				        if (object) 				        {				            out->writeBool(true);				            out->writeObject(object);				        }				        else 				        {				            out->writeBool(false);				        }				    }				}								void Object::read(DataInputStream* in){				    // Read Object's identification.				    int id = in->peekInt();				    if(id == IVEOBJECT)				    {				        // Code to read Object's properties.				        id = in->readInt();								        if ( in->getVersion() >= VERSION_0012 )				        {				            // Read name				            setName(in->readString());				        }								        char c = in->readChar();				        switch((int)c)				        {				            case 0: setDataVariance(osg::Object::STATIC);break;				            case 1: setDataVariance(osg::Object::DYNAMIC);break;				            case 2: setDataVariance(osg::Object::UNSPECIFIED);break;				        }								        if ( in->getVersion() >= VERSION_0031)				        {				            bool hasUserData = in->readBool();				            if (hasUserData)				            {				                setUserData(in->readObject());				            }				        }								    }				    else{				        throw Exception("Object::read(): Expected Object identification");				    }				}							

相关资源