Changed the ReferenceFrame enums to be RELEATIVE and ABSOLUTE, and

deprecated the RELATIVE_TO_ABSOLUTE and RELATIVE_TO_PARENTS.
This commit is contained in:
Robert Osfield 2004-10-22 19:26:45 +00:00
parent 8ab8fc762f
commit 6821a80e14
36 changed files with 98 additions and 75 deletions

View File

@ -144,7 +144,7 @@ void DistortionNode::createHUDSubgraph()
// create the hud. // create the hud.
osg::MatrixTransform* modelview_abs = new osg::MatrixTransform; osg::MatrixTransform* modelview_abs = new osg::MatrixTransform;
modelview_abs->setReferenceFrame(osg::Transform::RELATIVE_TO_ABSOLUTE); modelview_abs->setReferenceFrame(osg::Transform::ABSOLUTE);
modelview_abs->setMatrix(osg::Matrix::identity()); modelview_abs->setMatrix(osg::Matrix::identity());
modelview_abs->addChild(geode); modelview_abs->addChild(geode);

View File

@ -744,7 +744,7 @@ osg::Node* ForestTechniqueManager::createHUDWithText(const std::string& str)
// create the hud. // create the hud.
osg::MatrixTransform* modelview_abs = new osg::MatrixTransform; osg::MatrixTransform* modelview_abs = new osg::MatrixTransform;
modelview_abs->setReferenceFrame(osg::Transform::RELATIVE_TO_ABSOLUTE); modelview_abs->setReferenceFrame(osg::Transform::ABSOLUTE);
modelview_abs->setMatrix(osg::Matrix::identity()); modelview_abs->setMatrix(osg::Matrix::identity());
modelview_abs->addChild(geode); modelview_abs->addChild(geode);

View File

@ -232,7 +232,7 @@ osg::Group *build_hud_base(osg::Group *root)
root->addChild(proj.get()); root->addChild(proj.get());
osg::ref_ptr<osg::MatrixTransform> xform = new osg::MatrixTransform(osg::Matrix::identity()); osg::ref_ptr<osg::MatrixTransform> xform = new osg::MatrixTransform(osg::Matrix::identity());
xform->setReferenceFrame(osg::Transform::RELATIVE_TO_ABSOLUTE); xform->setReferenceFrame(osg::Transform::ABSOLUTE);
proj->addChild(xform.get()); proj->addChild(xform.get());
osg::StateSet *ss = xform->getOrCreateStateSet(); osg::StateSet *ss = xform->getOrCreateStateSet();

View File

@ -148,7 +148,7 @@ osg::Node* createHUD()
// create the hud. // create the hud.
osg::MatrixTransform* modelview_abs = new osg::MatrixTransform; osg::MatrixTransform* modelview_abs = new osg::MatrixTransform;
modelview_abs->setReferenceFrame(osg::Transform::RELATIVE_TO_ABSOLUTE); modelview_abs->setReferenceFrame(osg::Transform::ABSOLUTE);
modelview_abs->setMatrix(osg::Matrix::identity()); modelview_abs->setMatrix(osg::Matrix::identity());
modelview_abs->addChild(geode); modelview_abs->addChild(geode);

View File

@ -111,7 +111,7 @@ osg::Node* createHUD(osgText::Text* updateText)
// eg to be used as a menuing/help system! // eg to be used as a menuing/help system!
// Can pick texts too! // Can pick texts too!
osg::MatrixTransform* modelview_abs = new osg::MatrixTransform; osg::MatrixTransform* modelview_abs = new osg::MatrixTransform;
modelview_abs->setReferenceFrame(osg::Transform::RELATIVE_TO_ABSOLUTE); modelview_abs->setReferenceFrame(osg::Transform::ABSOLUTE);
modelview_abs->setMatrix(osg::Matrix::identity()); modelview_abs->setMatrix(osg::Matrix::identity());
osg::Projection* projection = new osg::Projection; osg::Projection* projection = new osg::Projection;

View File

@ -50,7 +50,7 @@ public:
// we have to check whether the reference frame is relative to parents // we have to check whether the reference frame is relative to parents
// or it's absolute; in the first case, we must transform the vectors // or it's absolute; in the first case, we must transform the vectors
// from local to world space. // from local to world space.
if (prg->getReferenceFrame() == osgParticle::Program::RELATIVE_TO_PARENTS) { if (prg->getReferenceFrame() == osgParticle::Program::RELATIVE) {
// transform the center point (full transformation) // transform the center point (full transformation)
xf_center_ = prg->transformLocalToWorld(center_); xf_center_ = prg->transformLocalToWorld(center_);
// transform the axis vector (only rotation and scale) // transform the axis vector (only rotation and scale)

View File

@ -80,7 +80,7 @@ public:
virtual bool computeLocalToWorldMatrix(osg::Matrix& matrix,osg::NodeVisitor*) const virtual bool computeLocalToWorldMatrix(osg::Matrix& matrix,osg::NodeVisitor*) const
{ {
if (_referenceFrame==RELATIVE_TO_PARENTS) if (_referenceFrame==RELATIVE)
{ {
matrix.preMult(getMatrix()); matrix.preMult(getMatrix());
} }
@ -96,7 +96,7 @@ public:
{ {
const osg::Matrix& inverse = getInverseMatrix(); const osg::Matrix& inverse = getInverseMatrix();
if (_referenceFrame==RELATIVE_TO_PARENTS) if (_referenceFrame==RELATIVE)
{ {
matrix.postMult(inverse); matrix.postMult(inverse);
} }

View File

@ -112,7 +112,7 @@ osg::Node* createHUD(osgText::Text* updateText)
// eg to be used as a menuing/help system! // eg to be used as a menuing/help system!
// Can pick texts too! // Can pick texts too!
osg::MatrixTransform* modelview_abs = new osg::MatrixTransform; osg::MatrixTransform* modelview_abs = new osg::MatrixTransform;
modelview_abs->setReferenceFrame(osg::Transform::RELATIVE_TO_ABSOLUTE); modelview_abs->setReferenceFrame(osg::Transform::ABSOLUTE);
modelview_abs->setMatrix(osg::Matrix::identity()); modelview_abs->setMatrix(osg::Matrix::identity());
osg::Projection* projection = new osg::Projection; osg::Projection* projection = new osg::Projection;

View File

@ -84,7 +84,7 @@ osg::Node * createScalarBar_HUD()
stateset->setRenderBinDetails(11, "RenderBin"); stateset->setRenderBinDetails(11, "RenderBin");
osg::MatrixTransform * modelview = new osg::MatrixTransform; osg::MatrixTransform * modelview = new osg::MatrixTransform;
modelview->setReferenceFrame(osg::Transform::RELATIVE_TO_ABSOLUTE); modelview->setReferenceFrame(osg::Transform::ABSOLUTE);
osg::Matrixd matrix(osg::Matrixd::scale(1000,1000,1000) * osg::Matrixd::translate(120,10,0)); // I've played with these values a lot and it seems to work, but I have no idea why osg::Matrixd matrix(osg::Matrixd::scale(1000,1000,1000) * osg::Matrixd::translate(120,10,0)); // I've played with these values a lot and it seems to work, but I have no idea why
modelview->setMatrix(matrix); modelview->setMatrix(matrix);
modelview->addChild(geode); modelview->addChild(geode);

View File

@ -525,7 +525,7 @@ osg::Node* createHUD()
// create the hud. // create the hud.
osg::MatrixTransform* modelview_abs = new osg::MatrixTransform; osg::MatrixTransform* modelview_abs = new osg::MatrixTransform;
modelview_abs->setReferenceFrame(osg::Transform::RELATIVE_TO_ABSOLUTE); modelview_abs->setReferenceFrame(osg::Transform::ABSOLUTE);
modelview_abs->setMatrix(osg::Matrix::identity()); modelview_abs->setMatrix(osg::Matrix::identity());
modelview_abs->addChild(geode); modelview_abs->addChild(geode);

View File

@ -501,7 +501,7 @@ int main( int argc, char **argv )
projection->setMatrix(osg::Matrix::ortho2D(0,1280,0,1024)); projection->setMatrix(osg::Matrix::ortho2D(0,1280,0,1024));
osg::MatrixTransform* modelview_abs = new osg::MatrixTransform; osg::MatrixTransform* modelview_abs = new osg::MatrixTransform;
modelview_abs->setReferenceFrame(osg::Transform::RELATIVE_TO_ABSOLUTE); modelview_abs->setReferenceFrame(osg::Transform::ABSOLUTE);
modelview_abs->setMatrix(osg::Matrix::identity()); modelview_abs->setMatrix(osg::Matrix::identity());
modelview_abs->addChild(createHUDText()); modelview_abs->addChild(createHUDText());

View File

@ -209,7 +209,7 @@ osg::Node* createHUD()
// create HUD // create HUD
osg::MatrixTransform* modelview_abs = new osg::MatrixTransform; osg::MatrixTransform* modelview_abs = new osg::MatrixTransform;
modelview_abs->setReferenceFrame(osg::Transform::RELATIVE_TO_ABSOLUTE); modelview_abs->setReferenceFrame(osg::Transform::ABSOLUTE);
modelview_abs->setMatrix(osg::Matrix::identity()); modelview_abs->setMatrix(osg::Matrix::identity());
modelview_abs->addChild(group); modelview_abs->addChild(group);

View File

@ -38,13 +38,18 @@ class SG_EXPORT LightSource : public Group
enum ReferenceFrame enum ReferenceFrame
{ {
RELATIVE_TO_PARENTS, RELATIVE,
RELATIVE_TO_ABSOLUTE ABSOLUTE
#ifdef USE_DEPRECATED_API
,
RELATIVE_TO_PARENTS=RELATIVE,
RELATIVE_TO_ABSOLUTE=ABSOLUTE,
#endif
}; };
/** Set the light sources's ReferenceFrame, either to be relative to its /** Set the light sources's ReferenceFrame, either to be relative to its
* parent reference frame, or relative to an absolute coordinate * parent reference frame, or relative to an absolute coordinate
* frame. RELATIVE_TO_PARENTS is the default. * frame. RELATIVE is the default.
* Note: setting the ReferenceFrame to be RELATIVE_TO_ABSOLUTE will * Note: setting the ReferenceFrame to be RELATIVE_TO_ABSOLUTE will
* also set the CullingActive flag on the light source, and hence all * also set the CullingActive flag on the light source, and hence all
* of its parents, to false, thereby disabling culling of it and * of its parents, to false, thereby disabling culling of it and

View File

@ -89,13 +89,18 @@ class SG_EXPORT Transform : public Group
enum ReferenceFrame enum ReferenceFrame
{ {
RELATIVE_TO_PARENTS, RELATIVE,
RELATIVE_TO_ABSOLUTE ABSOLUTE
#ifdef USE_DEPRECATED_API
,
RELATIVE_TO_PARENTS=RELATIVE,
RELATIVE_TO_ABSOLUTE=ABSOLUTE,
#endif
}; };
/** Set the transform's ReferenceFrame, either to be relative to its /** Set the transform's ReferenceFrame, either to be relative to its
* parent reference frame, or relative to an absolute coordinate * parent reference frame, or relative to an absolute coordinate
* frame. RELATIVE_TO_PARENTS is the default. * frame. RELATIVE is the default.
* Note: Setting the ReferenceFrame to be RELATIVE_TO_ABSOLUTE will * Note: Setting the ReferenceFrame to be RELATIVE_TO_ABSOLUTE will
* also set the CullingActive flag on the transform, and hence all * also set the CullingActive flag on the transform, and hence all
* of its parents, to false, thereby disabling culling of it and * of its parents, to false, thereby disabling culling of it and
@ -111,7 +116,7 @@ class SG_EXPORT Transform : public Group
virtual bool computeLocalToWorldMatrix(Matrix& matrix,NodeVisitor*) const virtual bool computeLocalToWorldMatrix(Matrix& matrix,NodeVisitor*) const
{ {
if (_referenceFrame==RELATIVE_TO_PARENTS) if (_referenceFrame==RELATIVE)
{ {
return false; return false;
} }
@ -124,7 +129,7 @@ class SG_EXPORT Transform : public Group
virtual bool computeWorldToLocalMatrix(Matrix& matrix,NodeVisitor*) const virtual bool computeWorldToLocalMatrix(Matrix& matrix,NodeVisitor*) const
{ {
if (_referenceFrame==RELATIVE_TO_PARENTS) if (_referenceFrame==RELATIVE)
{ {
return false; return false;
} }

View File

@ -95,7 +95,7 @@ namespace osgParticle
inline void AccelOperator::beginOperate(Program *prg) inline void AccelOperator::beginOperate(Program *prg)
{ {
if (prg->getReferenceFrame() == ModularProgram::RELATIVE_TO_PARENTS) { if (prg->getReferenceFrame() == ModularProgram::RELATIVE) {
xf_accel_ = prg->rotateLocalToWorld(accel_); xf_accel_ = prg->rotateLocalToWorld(accel_);
} else { } else {
xf_accel_ = accel_; xf_accel_ = accel_;

View File

@ -86,7 +86,7 @@ namespace osgParticle
inline void AngularAccelOperator::beginOperate(Program *prg) inline void AngularAccelOperator::beginOperate(Program *prg)
{ {
if (prg->getReferenceFrame() == ModularProgram::RELATIVE_TO_PARENTS) { if (prg->getReferenceFrame() == ModularProgram::RELATIVE) {
xf_angular_accel_ = prg->rotateLocalToWorld(angular_accel_); xf_angular_accel_ = prg->rotateLocalToWorld(angular_accel_);
} else { } else {
xf_angular_accel_ = angular_accel_; xf_angular_accel_ = angular_accel_;

View File

@ -87,7 +87,7 @@ namespace osgParticle
inline void ForceOperator::beginOperate(Program *prg) inline void ForceOperator::beginOperate(Program *prg)
{ {
if (prg->getReferenceFrame() == ModularProgram::RELATIVE_TO_PARENTS) { if (prg->getReferenceFrame() == ModularProgram::RELATIVE) {
xf_force_ = prg->rotateLocalToWorld(force_); xf_force_ = prg->rotateLocalToWorld(force_);
} else { } else {
xf_force_ = force_; xf_force_ = force_;

View File

@ -57,7 +57,7 @@ namespace osgParticle
/** Do something before processing particles via the <CODE>operate()</CODE> method. /** Do something before processing particles via the <CODE>operate()</CODE> method.
Overriding this method could be necessary to query the calling <CODE>Program</CODE> object Overriding this method could be necessary to query the calling <CODE>Program</CODE> object
for the current reference frame. If the reference frame is RELATIVE_TO_PARENTS, then your for the current reference frame. If the reference frame is RELATIVE, then your
class should prepare itself to do all operations in local coordinates. class should prepare itself to do all operations in local coordinates.
*/ */
virtual void beginOperate(Program *) {} virtual void beginOperate(Program *) {}

View File

@ -39,8 +39,13 @@ namespace osgParticle
public: public:
enum ReferenceFrame { enum ReferenceFrame {
RELATIVE_TO_PARENTS, RELATIVE,
RELATIVE_TO_ABSOLUTE ABSOLUTE
#ifdef USE_DEPRECATED_API
,
RELATIVE_TO_PARENTS=RELATIVE,
RELATIVE_TO_ABSOLUTE=ABSOLUTE,
#endif
}; };
ParticleProcessor(); ParticleProcessor();

View File

@ -45,7 +45,7 @@ bool AutoTransform::computeLocalToWorldMatrix(Matrix& matrix,NodeVisitor*) const
{ {
if (_matrixDirty) computeMatrix(); if (_matrixDirty) computeMatrix();
if (_referenceFrame==RELATIVE_TO_PARENTS) if (_referenceFrame==RELATIVE)
{ {
matrix.preMult(_cachedMatrix); matrix.preMult(_cachedMatrix);
} }
@ -59,7 +59,7 @@ bool AutoTransform::computeLocalToWorldMatrix(Matrix& matrix,NodeVisitor*) const
bool AutoTransform::computeWorldToLocalMatrix(Matrix& matrix,NodeVisitor*) const bool AutoTransform::computeWorldToLocalMatrix(Matrix& matrix,NodeVisitor*) const
{ {
if (_referenceFrame==RELATIVE_TO_PARENTS) if (_referenceFrame==RELATIVE)
{ {
matrix.postMult(osg::Matrix::translate(-_position)* matrix.postMult(osg::Matrix::translate(-_position)*
osg::Matrix::rotate(_rotation.inverse())* osg::Matrix::rotate(_rotation.inverse())*

View File

@ -321,7 +321,7 @@ bool Group::computeBound() const
++itr) ++itr)
{ {
const osg::Transform* transform = (*itr)->asTransform(); const osg::Transform* transform = (*itr)->asTransform();
if (!transform || transform->getReferenceFrame()==osg::Transform::RELATIVE_TO_PARENTS) if (!transform || transform->getReferenceFrame()==osg::Transform::RELATIVE)
{ {
bb.expandBy((*itr)->getBound()); bb.expandBy((*itr)->getBound());
} }
@ -340,7 +340,7 @@ bool Group::computeBound() const
++itr) ++itr)
{ {
const osg::Transform* transform = (*itr)->asTransform(); const osg::Transform* transform = (*itr)->asTransform();
if (!transform || transform->getReferenceFrame()==osg::Transform::RELATIVE_TO_PARENTS) if (!transform || transform->getReferenceFrame()==osg::Transform::RELATIVE)
{ {
_bsphere.expandRadiusBy((*itr)->getBound()); _bsphere.expandRadiusBy((*itr)->getBound());
} }

View File

@ -16,7 +16,7 @@ using namespace osg;
LightSource::LightSource(): LightSource::LightSource():
_value(StateAttribute::ON), _value(StateAttribute::ON),
_referenceFrame(RELATIVE_TO_PARENTS) _referenceFrame(RELATIVE)
{ {
// switch off culling of light source nodes by default. // switch off culling of light source nodes by default.
setCullingActive(false); setCullingActive(false);
@ -33,7 +33,7 @@ LightSource::~LightSource()
void LightSource::setReferenceFrame(ReferenceFrame rf) void LightSource::setReferenceFrame(ReferenceFrame rf)
{ {
_referenceFrame = rf; _referenceFrame = rf;
setCullingActive(_referenceFrame==RELATIVE_TO_PARENTS); setCullingActive(_referenceFrame==RELATIVE);
} }
void LightSource::setLight(Light* light) void LightSource::setLight(Light* light)
@ -62,7 +62,7 @@ bool LightSource::computeBound() const
{ {
Group::computeBound(); Group::computeBound();
if (_light.valid() && _referenceFrame==RELATIVE_TO_PARENTS) if (_light.valid() && _referenceFrame==RELATIVE)
{ {
const Vec4& pos = _light->getPosition(); const Vec4& pos = _light->getPosition();
if (pos[3]!=0.0f) if (pos[3]!=0.0f)

View File

@ -29,7 +29,7 @@ MatrixTransform::MatrixTransform(const MatrixTransform& transform,const CopyOp&
MatrixTransform::MatrixTransform(const Matrix& mat ) MatrixTransform::MatrixTransform(const Matrix& mat )
{ {
_referenceFrame = RELATIVE_TO_PARENTS; _referenceFrame = RELATIVE;
_matrix = mat; _matrix = mat;
_inverseDirty = false; _inverseDirty = false;
@ -42,7 +42,7 @@ MatrixTransform::~MatrixTransform()
bool MatrixTransform::computeLocalToWorldMatrix(Matrix& matrix,NodeVisitor*) const bool MatrixTransform::computeLocalToWorldMatrix(Matrix& matrix,NodeVisitor*) const
{ {
if (_referenceFrame==RELATIVE_TO_PARENTS) if (_referenceFrame==RELATIVE)
{ {
matrix.preMult(_matrix); matrix.preMult(_matrix);
} }
@ -57,7 +57,7 @@ bool MatrixTransform::computeWorldToLocalMatrix(Matrix& matrix,NodeVisitor*) con
{ {
const Matrix& inverse = getInverseMatrix(); const Matrix& inverse = getInverseMatrix();
if (_referenceFrame==RELATIVE_TO_PARENTS) if (_referenceFrame==RELATIVE)
{ {
matrix.postMult(inverse); matrix.postMult(inverse);
} }

View File

@ -21,7 +21,7 @@ PositionAttitudeTransform::PositionAttitudeTransform():
bool PositionAttitudeTransform::computeLocalToWorldMatrix(Matrix& matrix,NodeVisitor*) const bool PositionAttitudeTransform::computeLocalToWorldMatrix(Matrix& matrix,NodeVisitor*) const
{ {
if (_referenceFrame==RELATIVE_TO_PARENTS) if (_referenceFrame==RELATIVE)
{ {
matrix.preMult(osg::Matrix::translate(-_pivotPoint)* matrix.preMult(osg::Matrix::translate(-_pivotPoint)*
osg::Matrix::scale(_scale)* osg::Matrix::scale(_scale)*
@ -41,7 +41,7 @@ bool PositionAttitudeTransform::computeLocalToWorldMatrix(Matrix& matrix,NodeVis
bool PositionAttitudeTransform::computeWorldToLocalMatrix(Matrix& matrix,NodeVisitor*) const bool PositionAttitudeTransform::computeWorldToLocalMatrix(Matrix& matrix,NodeVisitor*) const
{ {
if (_referenceFrame==RELATIVE_TO_PARENTS) if (_referenceFrame==RELATIVE)
{ {
matrix.postMult(osg::Matrix::translate(-_position)* matrix.postMult(osg::Matrix::translate(-_position)*
osg::Matrix::rotate(_attitude.inverse())* osg::Matrix::rotate(_attitude.inverse())*

View File

@ -98,7 +98,7 @@ Matrix osg::computeEyeToLocal(const Matrix& modelview,const NodePath& nodePath)
Transform::Transform() Transform::Transform()
{ {
_referenceFrame = RELATIVE_TO_PARENTS; _referenceFrame = RELATIVE;
} }
Transform::Transform(const Transform& transform,const CopyOp& copyop): Transform::Transform(const Transform& transform,const CopyOp& copyop):
@ -118,7 +118,7 @@ void Transform::setReferenceFrame(ReferenceFrame rf)
_referenceFrame = rf; _referenceFrame = rf;
// switch off culling if transform is absolute. // switch off culling if transform is absolute.
if (_referenceFrame==RELATIVE_TO_ABSOLUTE) setCullingActive(false); if (_referenceFrame==RELATIVE) setCullingActive(false);
else setCullingActive(true); else setCullingActive(true);
} }

View File

@ -37,7 +37,7 @@ void osgParticle::FluidFrictionOperator::operate(Particle *P, double dt)
osg::Vec3 Fr(-R * v.x(), -R * v.y(), -R * v.z()); osg::Vec3 Fr(-R * v.x(), -R * v.y(), -R * v.z());
if (current_program_->getReferenceFrame() == ModularProgram::RELATIVE_TO_PARENTS) { if (current_program_->getReferenceFrame() == ModularProgram::RELATIVE) {
Fr = current_program_->rotateLocalToWorld(Fr); Fr = current_program_->rotateLocalToWorld(Fr);
} }

View File

@ -25,7 +25,7 @@ void osgParticle::ModularEmitter::emit(double dt)
if (P) { if (P) {
placer_->place(P); placer_->place(P);
shooter_->shoot(P); shooter_->shoot(P);
if (getReferenceFrame() == RELATIVE_TO_PARENTS) { if (getReferenceFrame() == RELATIVE) {
P->transformPositionVelocity(getLocalToWorldMatrix()); P->transformPositionVelocity(getLocalToWorldMatrix());
} }
} }

View File

@ -13,7 +13,7 @@ using namespace osg;
osgParticle::ParticleProcessor::ParticleProcessor() osgParticle::ParticleProcessor::ParticleProcessor()
: osg::Node(), : osg::Node(),
rf_(RELATIVE_TO_PARENTS), rf_(RELATIVE),
enabled_(true), enabled_(true),
t0_(-1), t0_(-1),
ps_(0), ps_(0),

View File

@ -13,6 +13,7 @@
#include <osgDB/FileUtils> #include <osgDB/FileUtils>
#include <osg/MatrixTransform> #include <osg/MatrixTransform>
#include <osg/Group> #include <osg/Group>
#include <osg/Timer>
#include "sockinet.h" #include "sockinet.h"
/* /*
@ -122,6 +123,10 @@ class NetReader : public osgDB::ReaderWriter
virtual ReadResult readFile(ObjectType objectType, const std::string& inFileName, const Options *options) virtual ReadResult readFile(ObjectType objectType, const std::string& inFileName, const Options *options)
{ {
osg::Timer_t start = osg::Timer::instance()->tick();
osg::notify(osg::DEBUG_INFO) << "osgPlugin .net: start load" << inFileName << std::endl;
std::string hostname; std::string hostname;
std::string serverPrefix; std::string serverPrefix;
std::string localCacheDir; std::string localCacheDir;
@ -320,12 +325,15 @@ class NetReader : public osgDB::ReaderWriter
osg::notify(osg::DEBUG_INFO) << "osgPlugin .net: " << fileName <<
" fetched from server." << std::endl;
if( reader != 0L ) if( reader != 0L )
readResult = readFile(objectType, reader, sio, local_opt.get() ); readResult = readFile(objectType, reader, sio, local_opt.get() );
double ms = osg::Timer::instance()->delta_m(start,osg::Timer::instance()->tick());
osg::notify(osg::DEBUG_INFO) << "osgPlugin .net: " << fileName <<
" fetched from server. in" << ms <<" ms"<< std::endl;
if( !localCacheDir.empty() && cacheMode & Write ) if( !localCacheDir.empty() && cacheMode & Write )
{ {
std::string cacheFile = localCacheDir + '/' + fileName; std::string cacheFile = localCacheDir + '/' + fileName;

View File

@ -28,13 +28,13 @@ bool LightSource_readLocalData(Object& obj, Input& fr)
LightSource& lightsource = static_cast<LightSource&>(obj); LightSource& lightsource = static_cast<LightSource&>(obj);
if (fr[0].matchWord("referenceFrame")) { if (fr[0].matchWord("referenceFrame")) {
if (fr[1].matchWord("RELATIVE_TO_ABSOLUTE")) { if (fr[1].matchWord("RELATIVE_TO_ABSOLUTE") || fr[1].matchWord("ABSOLUTE")) {
lightsource.setReferenceFrame(LightSource::RELATIVE_TO_ABSOLUTE); lightsource.setReferenceFrame(LightSource::ABSOLUTE);
fr += 2; fr += 2;
iteratorAdvanced = true; iteratorAdvanced = true;
} }
if (fr[1].matchWord("RELATIVE_TO_PARENTS")) { if (fr[1].matchWord("RELATIVE_TO_PARENTS") || fr[1].matchWord("RELATIVE")) {
lightsource.setReferenceFrame(LightSource::RELATIVE_TO_PARENTS); lightsource.setReferenceFrame(LightSource::RELATIVE);
fr += 2; fr += 2;
iteratorAdvanced = true; iteratorAdvanced = true;
} }
@ -58,12 +58,12 @@ bool LightSource_writeLocalData(const Object& obj, Output& fw)
fw.indent() << "referenceFrame "; fw.indent() << "referenceFrame ";
switch (lightsource.getReferenceFrame()) { switch (lightsource.getReferenceFrame()) {
case LightSource::RELATIVE_TO_ABSOLUTE: case LightSource::ABSOLUTE:
fw << "RELATIVE_TO_ABSOLUTE\n"; fw << "RELATIVE_TO_ABSOLUTE\n";
break; break;
case LightSource::RELATIVE_TO_PARENTS: case LightSource::RELATIVE:
default: default:
fw << "RELATIVE_TO_PARENTS\n"; fw << "RELATIVE\n";
}; };
if (lightsource.getLight()) fw.writeObject(*lightsource.getLight()); if (lightsource.getLight()) fw.writeObject(*lightsource.getLight());

View File

@ -50,13 +50,13 @@ bool Transform_readLocalData(Object& obj, Input& fr)
} }
if (fr[0].matchWord("referenceFrame")) { if (fr[0].matchWord("referenceFrame")) {
if (fr[1].matchWord("RELATIVE_TO_ABSOLUTE")) { if (fr[1].matchWord("RELATIVE_TO_ABSOLUTE") || fr[1].matchWord("ABSOLUTE") ) {
transform.setReferenceFrame(Transform::RELATIVE_TO_ABSOLUTE); transform.setReferenceFrame(Transform::ABSOLUTE);
fr += 2; fr += 2;
iteratorAdvanced = true; iteratorAdvanced = true;
} }
if (fr[1].matchWord("RELATIVE_TO_PARENTS")) { if (fr[1].matchWord("RELATIVE_TO_PARENTS") || fr[1].matchWord("RELATIVE")) {
transform.setReferenceFrame(Transform::RELATIVE_TO_PARENTS); transform.setReferenceFrame(Transform::RELATIVE);
fr += 2; fr += 2;
iteratorAdvanced = true; iteratorAdvanced = true;
} }
@ -72,12 +72,12 @@ bool Transform_writeLocalData(const Object& obj, Output& fw)
fw.indent() << "referenceFrame "; fw.indent() << "referenceFrame ";
switch (transform.getReferenceFrame()) { switch (transform.getReferenceFrame()) {
case Transform::RELATIVE_TO_ABSOLUTE: case Transform::ABSOLUTE:
fw << "RELATIVE_TO_ABSOLUTE\n"; fw << "ABSOLUTE\n";
break; break;
case Transform::RELATIVE_TO_PARENTS: case Transform::RELATIVE:
default: default:
fw << "RELATIVE_TO_PARENTS\n"; fw << "RELATIVE\n";
}; };
return true; return true;

View File

@ -51,13 +51,13 @@ bool ParticleProcessor_readLocalData(osg::Object &obj, osgDB::Input &fr)
} }
if (fr[0].matchWord("referenceFrame")) { if (fr[0].matchWord("referenceFrame")) {
if (fr[1].matchWord("RELATIVE_TO_ABSOLUTE")) { if (fr[1].matchWord("RELATIVE_TO_ABSOLUTE") || fr[1].matchWord("ABSOLUTE")) {
myobj.setReferenceFrame(osgParticle::ParticleProcessor::RELATIVE_TO_ABSOLUTE); myobj.setReferenceFrame(osgParticle::ParticleProcessor::ABSOLUTE);
fr += 2; fr += 2;
itAdvanced = true; itAdvanced = true;
} }
if (fr[1].matchWord("RELATIVE_TO_PARENTS")) { if (fr[1].matchWord("RELATIVE_TO_PARENTS") || fr[1].matchWord("RELATIVE")) {
myobj.setReferenceFrame(osgParticle::ParticleProcessor::RELATIVE_TO_PARENTS); myobj.setReferenceFrame(osgParticle::ParticleProcessor::RELATIVE);
fr += 2; fr += 2;
itAdvanced = true; itAdvanced = true;
} }
@ -129,12 +129,12 @@ bool ParticleProcessor_writeLocalData(const osg::Object &obj, osgDB::Output &fw)
fw.indent() << "referenceFrame "; fw.indent() << "referenceFrame ";
switch (myobj.getReferenceFrame()) switch (myobj.getReferenceFrame())
{ {
case osgParticle::ParticleProcessor::RELATIVE_TO_ABSOLUTE: case osgParticle::ParticleProcessor::ABSOLUTE:
fw << "RELATIVE_TO_ABSOLUTE" << std::endl; fw << "ABSOLUTE" << std::endl;
break; break;
case osgParticle::ParticleProcessor::RELATIVE_TO_PARENTS: case osgParticle::ParticleProcessor::RELATIVE:
default: default:
fw << "RELATIVE_TO_PARENTS" << std::endl; fw << "RELATIVE" << std::endl;
} }
fw.indent() << "endless "; fw.indent() << "endless ";

View File

@ -468,11 +468,11 @@ void Viewer::setUpViewer(unsigned int options)
lightsource->setLight(light); lightsource->setLight(light);
if (options & HEAD_LIGHT_SOURCE) if (options & HEAD_LIGHT_SOURCE)
{ {
lightsource->setReferenceFrame(osg::LightSource::RELATIVE_TO_ABSOLUTE); // headlight. lightsource->setReferenceFrame(osg::LightSource::ABSOLUTE); // headlight.
} }
else else
{ {
lightsource->setReferenceFrame(osg::LightSource::RELATIVE_TO_PARENTS); // skylight lightsource->setReferenceFrame(osg::LightSource::RELATIVE); // skylight
} }
lightsource->setLocalStateSetModes(osg::StateAttribute::ON); lightsource->setLocalStateSetModes(osg::StateAttribute::ON);
} }

View File

@ -141,7 +141,7 @@ bool DOFTransform::computeLocalToWorldMatrix(osg::Matrix& matrix,osg::NodeVisito
l2w.postMult(getInversePutMatrix()); l2w.postMult(getInversePutMatrix());
// finally. // finally.
if (_referenceFrame==RELATIVE_TO_PARENTS) if (_referenceFrame==RELATIVE)
{ {
matrix.preMult(l2w); matrix.preMult(l2w);
} }
@ -209,7 +209,7 @@ bool DOFTransform::computeWorldToLocalMatrix(osg::Matrix& matrix,osg::NodeVisito
//and impose inverse put: //and impose inverse put:
w2l.postMult(getPutMatrix()); w2l.postMult(getPutMatrix());
if (_referenceFrame==RELATIVE_TO_PARENTS) if (_referenceFrame==RELATIVE)
{ {
//finally: //finally:
matrix.postMult(w2l); matrix.postMult(w2l);

View File

@ -830,7 +830,7 @@ void CullVisitor::apply(LightSource& node)
StateAttribute* light = node.getLight(); StateAttribute* light = node.getLight();
if (light) if (light)
{ {
if (node.getReferenceFrame()==osg::LightSource::RELATIVE_TO_PARENTS) if (node.getReferenceFrame()==osg::LightSource::RELATIVE)
{ {
RefMatrix& matrix = getModelViewMatrix(); RefMatrix& matrix = getModelViewMatrix();
addPositionedAttribute(&matrix,light); addPositionedAttribute(&matrix,light);

View File

@ -625,7 +625,7 @@ class CollectLowestTransformsVisitor : public osg::NodeVisitor
if (transform) if (transform)
{ {
if (transform->getDataVariance()==osg::Transform::DYNAMIC) _moreThanOneMatrixRequired=true; if (transform->getDataVariance()==osg::Transform::DYNAMIC) _moreThanOneMatrixRequired=true;
else if (transform->getReferenceFrame()==osg::Transform::RELATIVE_TO_ABSOLUTE) _moreThanOneMatrixRequired=true; else if (transform->getReferenceFrame()==osg::Transform::RELATIVE) _moreThanOneMatrixRequired=true;
else else
{ {
if (_transformSet.empty()) transform->computeLocalToWorldMatrix(_firstMatrix,0); if (_transformSet.empty()) transform->computeLocalToWorldMatrix(_firstMatrix,0);