Added missing LightModel.h and .cpp from Stansilav.

This commit is contained in:
Robert Osfield
2004-09-10 17:49:50 +00:00
parent e5ea972cff
commit 99332ef11a
2 changed files with 79 additions and 0 deletions

View File

@@ -0,0 +1,64 @@
/**********************************************************************
*
* FILE: LightModel.cpp
*
* DESCRIPTION: Read/Write osg::LightModel (partially) in binary format to disk.
*
* CREATED BY: Stanislav Blinov
*
* HISTORY: Created 7.09.2004
*
* Copyright 2004 OtherSide
**********************************************************************/
#include "Exception.h"
#include "LightModel.h"
#include "Object.h"
using namespace ive;
void LightModel::write(DataOutputStream* out){
// write LightModel's identification
out->writeInt(IVELIGHTMODEL);
// if the osg class is inherited by any other class we should also write this to file
osg::Object* obj = dynamic_cast<osg::Object*>(this);
if(obj)
((ive::Object*)(obj))->write(out);
else
throw Exception("LightModel::write(): Could not cast this osg::LightModel to an osg::Object.");
// write LightModel's properties
out->writeBool(getTwoSided());
out->writeBool(getLocalViewer());
out->writeVec4(getAmbientIntensity());
out->writeInt( getColorControl());
}
void LightModel::read(DataInputStream* in){
// peek on LightModel's identification
int id = in->peekInt();
if(id == IVELIGHTMODEL)
{
// read LightModel's identification
id = in->readInt();
// if the osg class is inherited by any other class we should also read this from file
osg::Object* obj = dynamic_cast<osg::Object*>(this);
if(obj)
((ive::Object*)(obj))->read(in);
else
throw Exception("LightModel::read(): Could not cast this osg::LightModel to an osg::Object.");
// Read LightModel's properties
setTwoSided(in->readBool());
setLocalViewer(in->readBool());
setAmbientIntensity(in->readVec4());
setColorControl((ColorControl)in->readInt());
}
else{
throw Exception("LightModel::read(): Expected LightModel identification.");
}
}

View File

@@ -0,0 +1,15 @@
#ifndef IVE_LIGHTMODEL
#define IVE_LIGHTMODEL 1
#include <osg/LightModel>
#include "ReadWrite.h"
namespace ive{
class LightModel : public osg::LightModel, public ReadWrite {
public:
void write(DataOutputStream* out);
void read(DataInputStream* in);
};
}
#endif