Switch to new vector conversion functions.
Modified Files: simgear/math/SGGeod.cxx simgear/math/SGQuat.hxx simgear/math/SGVec2.hxx simgear/math/SGVec3.hxx simgear/math/SGVec4.hxx simgear/scene/material/Effect.cxx simgear/scene/model/SGInteractionAnimation.cxx simgear/scene/model/SGMaterialAnimation.cxx simgear/scene/model/SGRotateTransform.cxx simgear/scene/model/SGScaleTransform.cxx simgear/scene/model/SGTranslateTransform.cxx simgear/scene/model/animation.cxx simgear/scene/model/particles.cxx simgear/scene/model/placement.cxx simgear/scene/model/shadanim.cxx simgear/scene/sky/CloudShaderGeometry.cxx simgear/scene/sky/cloud.cxx simgear/scene/sky/cloudfield.cxx simgear/scene/sky/dome.cxx simgear/scene/sky/sky.cxx simgear/scene/tgdb/GroundLightManager.cxx simgear/scene/tgdb/SGOceanTile.cxx simgear/scene/tgdb/SGTexturedTriangleBin.hxx simgear/scene/tgdb/SGVasiDrawable.cxx simgear/scene/tgdb/TreeBin.cxx simgear/scene/tgdb/obj.cxx simgear/scene/tgdb/pt_lights.cxx simgear/scene/util/SGUpdateVisitor.hxx
This commit is contained in:
@@ -22,7 +22,7 @@
|
||||
osg::Matrix SGGeod::makeSimulationFrameRelative() const
|
||||
{
|
||||
SGQuatd hlOr = SGQuatd::fromLonLat(*this);
|
||||
return osg::Matrix(hlOr.osg());
|
||||
return osg::Matrix(toOsg(hlOr));
|
||||
}
|
||||
|
||||
osg::Matrix SGGeod::makeSimulationFrame() const
|
||||
@@ -30,7 +30,7 @@ osg::Matrix SGGeod::makeSimulationFrame() const
|
||||
osg::Matrix result(makeSimulationFrameRelative());
|
||||
SGVec3d coord;
|
||||
SGGeodesy::SGGeodToCart(*this, coord);
|
||||
result.setTrans(coord.osg());
|
||||
result.setTrans(toOsg(coord));
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ osg::Matrix SGGeod::makeZUpFrame() const
|
||||
osg::Matrix result(makeZUpFrameRelative());
|
||||
SGVec3d coord;
|
||||
SGGeodesy::SGGeodToCart(*this, coord);
|
||||
result.setTrans(coord.osg());
|
||||
result.setTrans(toOsg(coord));
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@@ -55,10 +55,6 @@ public:
|
||||
/// make sure it has at least 4 elements
|
||||
explicit SGQuat(const T* d)
|
||||
{ data()[0] = d[0]; data()[1] = d[1]; data()[2] = d[2]; data()[3] = d[3]; }
|
||||
#ifndef NO_OPENSCENEGRAPH_INTERFACE
|
||||
explicit SGQuat(const osg::Quat& d)
|
||||
{ data()[0] = d[0]; data()[1] = d[1]; data()[2] = d[2]; data()[3] = d[3]; }
|
||||
#endif
|
||||
|
||||
/// Return a unit quaternion
|
||||
static SGQuat unit(void)
|
||||
@@ -376,11 +372,6 @@ public:
|
||||
T (&data(void))[4]
|
||||
{ return _data; }
|
||||
|
||||
#ifndef NO_OPENSCENEGRAPH_INTERFACE
|
||||
osg::Quat osg() const
|
||||
{ return osg::Quat(data()[0], data()[1], data()[2], data()[3]); }
|
||||
#endif
|
||||
|
||||
/// Inplace addition
|
||||
SGQuat& operator+=(const SGQuat& v)
|
||||
{ data()[0]+=v(0);data()[1]+=v(1);data()[2]+=v(2);data()[3]+=v(3);return *this; }
|
||||
|
||||
@@ -55,12 +55,6 @@ public:
|
||||
template<typename S>
|
||||
explicit SGVec2(const SGVec2<S>& d)
|
||||
{ data()[0] = d[0]; data()[1] = d[1]; }
|
||||
#ifndef NO_OPENSCENEGRAPH_INTERFACE
|
||||
explicit SGVec2(const osg::Vec2f& d)
|
||||
{ data()[0] = d[0]; data()[1] = d[1]; }
|
||||
explicit SGVec2(const osg::Vec2d& d)
|
||||
{ data()[0] = d[0]; data()[1] = d[1]; }
|
||||
#endif
|
||||
|
||||
/// Access by index, the index is unchecked
|
||||
const T& operator()(unsigned i) const
|
||||
@@ -96,11 +90,6 @@ public:
|
||||
T (&data(void))[2]
|
||||
{ return _data; }
|
||||
|
||||
#ifndef NO_OPENSCENEGRAPH_INTERFACE
|
||||
osg::Vec2d osg() const
|
||||
{ return osg::Vec2d(data()[0], data()[1]); }
|
||||
#endif
|
||||
|
||||
/// Inplace addition
|
||||
SGVec2& operator+=(const SGVec2& v)
|
||||
{ data()[0] += v(0); data()[1] += v(1); return *this; }
|
||||
|
||||
@@ -53,12 +53,6 @@ public:
|
||||
{ data()[0] = d[0]; data()[1] = d[1]; data()[2] = d[2]; }
|
||||
explicit SGVec3(const SGVec2<T>& v2, const T& v3 = 0)
|
||||
{ data()[0] = v2[0]; data()[1] = v2[1]; data()[2] = v3; }
|
||||
#ifndef NO_OPENSCENEGRAPH_INTERFACE
|
||||
explicit SGVec3(const osg::Vec3f& d)
|
||||
{ data()[0] = d[0]; data()[1] = d[1]; data()[2] = d[2]; }
|
||||
explicit SGVec3(const osg::Vec3d& d)
|
||||
{ data()[0] = d[0]; data()[1] = d[1]; data()[2] = d[2]; }
|
||||
#endif
|
||||
|
||||
/// Access by index, the index is unchecked
|
||||
const T& operator()(unsigned i) const
|
||||
@@ -100,11 +94,6 @@ public:
|
||||
T (&data(void))[3]
|
||||
{ return _data; }
|
||||
|
||||
#ifndef NO_OPENSCENEGRAPH_INTERFACE
|
||||
osg::Vec3d osg() const
|
||||
{ return osg::Vec3d(data()[0], data()[1], data()[2]); }
|
||||
#endif
|
||||
|
||||
/// Inplace addition
|
||||
SGVec3& operator+=(const SGVec3& v)
|
||||
{ data()[0] += v(0); data()[1] += v(1); data()[2] += v(2); return *this; }
|
||||
|
||||
@@ -53,12 +53,6 @@ public:
|
||||
{ data()[0] = d[0]; data()[1] = d[1]; data()[2] = d[2]; data()[3] = d[3]; }
|
||||
explicit SGVec4(const SGVec3<T>& v3, const T& v4 = 0)
|
||||
{ data()[0] = v3[0]; data()[1] = v3[1]; data()[2] = v3[2]; data()[3] = v4; }
|
||||
#ifndef NO_OPENSCENEGRAPH_INTERFACE
|
||||
explicit SGVec4(const osg::Vec4f& d)
|
||||
{ data()[0] = d[0]; data()[1] = d[1]; data()[2] = d[2]; data()[3] = d[3]; }
|
||||
explicit SGVec4(const osg::Vec4d& d)
|
||||
{ data()[0] = d[0]; data()[1] = d[1]; data()[2] = d[2]; data()[3] = d[3]; }
|
||||
#endif
|
||||
|
||||
/// Access by index, the index is unchecked
|
||||
const T& operator()(unsigned i) const
|
||||
@@ -106,11 +100,6 @@ public:
|
||||
T (&data(void))[4]
|
||||
{ return _data; }
|
||||
|
||||
#ifndef NO_OPENSCENEGRAPH_INTERFACE
|
||||
osg::Vec4d osg() const
|
||||
{ return osg::Vec4d(data()[0], data()[1], data()[2], data()[3]); }
|
||||
#endif
|
||||
|
||||
/// Inplace addition
|
||||
SGVec4& operator+=(const SGVec4& v)
|
||||
{ data()[0]+=v(0);data()[1]+=v(1);data()[2]+=v(2);data()[3]+=v(3);return *this; }
|
||||
|
||||
@@ -168,9 +168,9 @@ osg::Vec4f getColor(const SGPropertyNode* prop)
|
||||
{
|
||||
if (prop->nChildren() == 0) {
|
||||
if (prop->getType() == props::VEC4D) {
|
||||
return osg::Vec4f(prop->getValue<SGVec4d>().osg());
|
||||
return osg::Vec4f(toOsg(prop->getValue<SGVec4d>()));
|
||||
} else if (prop->getType() == props::VEC3D) {
|
||||
return osg::Vec4f(prop->getValue<SGVec3d>().osg(), 1.0f);
|
||||
return osg::Vec4f(toOsg(prop->getValue<SGVec3d>()), 1.0f);
|
||||
} else {
|
||||
SG_LOG(SG_INPUT, SG_ALERT,
|
||||
"invalid color property " << prop->getName() << " "
|
||||
@@ -417,7 +417,7 @@ TexEnv* buildTexEnv(Effect* effect, const SGPropertyNode* prop)
|
||||
}
|
||||
TexEnv* env = new TexEnv(mode);
|
||||
if (colorProp)
|
||||
env->setColor(colorProp->getValue<SGVec4d>().osg());
|
||||
env->setColor(toOsg(colorProp->getValue<SGVec4d>()));
|
||||
return env;
|
||||
}
|
||||
|
||||
@@ -623,10 +623,10 @@ struct UniformBuilder :public PassAttributeBuilder
|
||||
uniform->set(valProp->getValue<float>());
|
||||
break;
|
||||
case Uniform::FLOAT_VEC3:
|
||||
uniform->set(Vec3f(valProp->getValue<SGVec3d>().osg()));
|
||||
uniform->set(toOsg(valProp->getValue<SGVec3d>()));
|
||||
break;
|
||||
case Uniform::FLOAT_VEC4:
|
||||
uniform->set(Vec4f(valProp->getValue<SGVec4d>().osg()));
|
||||
uniform->set(toOsg(valProp->getValue<SGVec4d>()));
|
||||
break;
|
||||
case Uniform::SAMPLER_1D:
|
||||
case Uniform::SAMPLER_2D:
|
||||
|
||||
@@ -80,8 +80,8 @@ public:
|
||||
// Trick to get the ends in the right order.
|
||||
// Use the x axis in the original coordinate system. Choose the
|
||||
// most negative x-axis as the one pointing forward
|
||||
SGVec3f tv1(_matrix.preMult(v1));
|
||||
SGVec3f tv2(_matrix.preMult(v2));
|
||||
SGVec3f tv1(toSG(_matrix.preMult(v1)));
|
||||
SGVec3f tv2(toSG(_matrix.preMult(v2)));
|
||||
if (tv1[0] > tv2[0])
|
||||
_lineSegments.push_back(SGLineSegmentf(tv1, tv2));
|
||||
else
|
||||
|
||||
@@ -100,7 +100,7 @@ struct ColorSpec {
|
||||
|
||||
osg::Vec4 rgbaVec4()
|
||||
{
|
||||
return rgba().osg();
|
||||
return toOsg(rgba());
|
||||
}
|
||||
|
||||
SGVec4f &initialRgba() {
|
||||
|
||||
@@ -128,7 +128,7 @@ osg::BoundingSphere
|
||||
SGRotateTransform::computeBound() const
|
||||
{
|
||||
osg::BoundingSphere bs = osg::Group::computeBound();
|
||||
osg::BoundingSphere centerbs(_center.osg(), bs.radius());
|
||||
osg::BoundingSphere centerbs(toOsg(_center), bs.radius());
|
||||
centerbs.expandBy(bs);
|
||||
return centerbs;
|
||||
}
|
||||
@@ -147,7 +147,7 @@ bool RotateTransform_readLocalData(osg::Object& obj, osgDB::Input& fr)
|
||||
fr += 3;
|
||||
else
|
||||
return false;
|
||||
rot.setCenter(SGVec3d(center));
|
||||
rot.setCenter(toSG(center));
|
||||
}
|
||||
if (fr[0].matchWord("axis")) {
|
||||
++fr;
|
||||
@@ -156,7 +156,7 @@ bool RotateTransform_readLocalData(osg::Object& obj, osgDB::Input& fr)
|
||||
fr += 3;
|
||||
else
|
||||
return false;
|
||||
rot.setCenter(SGVec3d(axis));
|
||||
rot.setCenter(toSG(axis));
|
||||
}
|
||||
if (fr[0].matchWord("angle")) {
|
||||
++fr;
|
||||
|
||||
@@ -112,7 +112,7 @@ bool ScaleTransform_readLocalData(osg::Object& obj, osgDB::Input& fr)
|
||||
fr += 3;
|
||||
else
|
||||
return false;
|
||||
scale.setCenter(SGVec3d(center));
|
||||
scale.setCenter(toSG(center));
|
||||
}
|
||||
if (fr[0].matchWord("scaleFactor")) {
|
||||
++fr;
|
||||
@@ -121,7 +121,7 @@ bool ScaleTransform_readLocalData(osg::Object& obj, osgDB::Input& fr)
|
||||
fr += 3;
|
||||
else
|
||||
return false;
|
||||
scale.setScaleFactor(SGVec3d(scaleFactor));
|
||||
scale.setScaleFactor(toSG(scaleFactor));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -49,9 +49,9 @@ SGTranslateTransform::computeLocalToWorldMatrix(osg::Matrix& matrix,
|
||||
osg::NodeVisitor* nv) const
|
||||
{
|
||||
if (_referenceFrame == RELATIVE_RF) {
|
||||
matrix.preMultTranslate((_value*_axis).osg());
|
||||
matrix.preMultTranslate(toOsg(_value*_axis));
|
||||
} else {
|
||||
matrix.setTrans((_value*_axis).osg());
|
||||
matrix.setTrans(toOsg(_value*_axis));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -61,9 +61,9 @@ SGTranslateTransform::computeWorldToLocalMatrix(osg::Matrix& matrix,
|
||||
osg::NodeVisitor* nv) const
|
||||
{
|
||||
if (_referenceFrame == RELATIVE_RF) {
|
||||
matrix.postMultTranslate((-_value*_axis).osg());
|
||||
matrix.postMultTranslate(toOsg(-_value*_axis));
|
||||
} else {
|
||||
matrix.setTrans((-_value*_axis).osg());
|
||||
matrix.setTrans(toOsg(-_value*_axis));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -72,7 +72,7 @@ osg::BoundingSphere
|
||||
SGTranslateTransform::computeBound() const
|
||||
{
|
||||
osg::BoundingSphere bs = osg::Group::computeBound();
|
||||
bs._center += _axis.osg()*_value;
|
||||
bs._center += toOsg(_axis)*_value;
|
||||
return bs;
|
||||
}
|
||||
|
||||
@@ -89,7 +89,7 @@ bool TranslateTransform_readLocalData(osg::Object& obj, osgDB::Input& fr)
|
||||
fr += 3;
|
||||
else
|
||||
return false;
|
||||
trans.setAxis(SGVec3d(axis));
|
||||
trans.setAxis(toSG(axis));
|
||||
}
|
||||
if (fr[0].matchWord("value")) {
|
||||
++fr;
|
||||
|
||||
@@ -1024,7 +1024,7 @@ private:
|
||||
if (!nv)
|
||||
return 1;
|
||||
|
||||
double scale_factor = (_center.osg() - nv->getEyePoint()).length();
|
||||
double scale_factor = (toOsg(_center) - nv->getEyePoint()).length();
|
||||
if (_table == 0) {
|
||||
scale_factor = _factor * scale_factor + _offset;
|
||||
} else {
|
||||
|
||||
@@ -59,7 +59,7 @@ void GlobalParticleCallback::operator()(osg::Node* node, osg::NodeVisitor* nv)
|
||||
SGQuatd q
|
||||
= SGQuatd::fromLonLatDeg(modelRoot->getFloatValue("/position/longitude-deg",0),
|
||||
modelRoot->getFloatValue("/position/latitude-deg",0));
|
||||
osg::Matrix om(q.osg());
|
||||
osg::Matrix om(toOsg(q));
|
||||
osg::Vec3 v(0,0,9.81);
|
||||
gravity = om.preMult(v);
|
||||
const osg::Vec3& zUpWind = Particles::getWindVector();
|
||||
@@ -552,7 +552,7 @@ void Particles::operator()(osg::Node* node, osg::NodeVisitor* nv)
|
||||
if (displace * displace > 10000.0 * 10000.0) {
|
||||
// Make new frame for particle system, coincident with
|
||||
// the emitter frame, but oriented with local Z.
|
||||
SGGeod geod = SGGeod::fromCart(SGVec3d(emitOrigin));
|
||||
SGGeod geod = SGGeod::fromCart(toSG(emitOrigin));
|
||||
Matrix newParticleMat = geod.makeZUpFrame();
|
||||
Matrix changeParticleFrame
|
||||
= particleMat * Matrix::inverse(newParticleMat);
|
||||
|
||||
@@ -46,7 +46,7 @@ SGModelPlacement::update()
|
||||
{
|
||||
// The cartesian position
|
||||
SGVec3d position = SGVec3d::fromGeod(_position);
|
||||
_transform->setPosition(position.osg());
|
||||
_transform->setPosition(toOsg(position));
|
||||
|
||||
// The orientation, composed from the horizontal local orientation and the
|
||||
// orientation wrt the horizontal local frame
|
||||
@@ -56,7 +56,7 @@ SGModelPlacement::update()
|
||||
// the y axis 180 degrees.
|
||||
orient *= SGQuatd::fromRealImag(0, SGVec3d(0, 1, 0));
|
||||
|
||||
_transform->setAttitude(orient.osg());
|
||||
_transform->setAttitude(toOsg(orient));
|
||||
}
|
||||
|
||||
bool
|
||||
|
||||
@@ -107,8 +107,8 @@ public:
|
||||
// FIXME: need an update or callback ...
|
||||
// generate the six highlight map images (light direction = [1, 1, -1])
|
||||
osg::ref_ptr<osgUtil::HighlightMapGenerator> mapgen;
|
||||
mapgen = new osgUtil::HighlightMapGenerator(_lastLightDirection.osg(),
|
||||
_lastLightColor.osg(), 5);
|
||||
mapgen = new osgUtil::HighlightMapGenerator(toOsg(_lastLightDirection),
|
||||
toOsg(_lastLightColor), 5);
|
||||
mapgen->generateMap();
|
||||
|
||||
// assign the six images to the texture object
|
||||
@@ -209,8 +209,8 @@ public:
|
||||
if (!combine)
|
||||
return;
|
||||
// An approximation for light reflected back by chrome.
|
||||
osg::Vec4 globalColor = (updateVisitor->getAmbientLight().osg() * .4f
|
||||
+ updateVisitor->getDiffuseLight().osg());
|
||||
osg::Vec4 globalColor = toOsg(updateVisitor->getAmbientLight() * .4f
|
||||
+ updateVisitor->getDiffuseLight());
|
||||
globalColor.a() = 1.0f;
|
||||
combine->setConstantColor(globalColor);
|
||||
}
|
||||
|
||||
@@ -74,7 +74,7 @@ void CloudShaderGeometry::drawImplementation(RenderInfo& renderInfo) const
|
||||
itr != end;
|
||||
++itr) {
|
||||
Vec4f projPos
|
||||
= Vec4f(_cloudsprites[itr->idx].position.osg(), 1.0f) * mvp;
|
||||
= Vec4f(toOsg(_cloudsprites[itr->idx].position), 1.0f) * mvp;
|
||||
itr->depth = projPos.z() / projPos.w();
|
||||
}
|
||||
// Already sorted?
|
||||
|
||||
@@ -605,7 +605,7 @@ SGCloudLayer::rebuild()
|
||||
|
||||
// repaint the cloud layer colors
|
||||
bool SGCloudLayer::repaint( const SGVec3f& fog_color ) {
|
||||
osg::Vec4f combineColor(fog_color.osg(), cloud_alpha);
|
||||
osg::Vec4f combineColor(toOsg(fog_color), cloud_alpha);
|
||||
osg::TexEnvCombine* combiner
|
||||
= dynamic_cast<osg::TexEnvCombine*>(layer_root->getStateSet()
|
||||
->getTextureAttribute(1, osg::StateAttribute::TEXENV));
|
||||
@@ -625,7 +625,7 @@ bool SGCloudLayer::reposition( const SGVec3f& p, const SGVec3f& up, double lon,
|
||||
double alt, double dt )
|
||||
{
|
||||
// combine p and asl (meters) to get translation offset
|
||||
osg::Vec3 asl_offset(up.osg());
|
||||
osg::Vec3 asl_offset(toOsg(up));
|
||||
asl_offset.normalize();
|
||||
if ( alt <= layer_asl ) {
|
||||
asl_offset *= layer_asl;
|
||||
@@ -635,7 +635,7 @@ bool SGCloudLayer::reposition( const SGVec3f& p, const SGVec3f& up, double lon,
|
||||
|
||||
// cout << "asl_offset = " << asl_offset[0] << "," << asl_offset[1]
|
||||
// << "," << asl_offset[2] << endl;
|
||||
asl_offset += p.osg();
|
||||
asl_offset += toOsg(p);
|
||||
// cout << " asl_offset = " << asl_offset[0] << "," << asl_offset[1]
|
||||
// << "," << asl_offset[2] << endl;
|
||||
|
||||
|
||||
@@ -96,7 +96,7 @@ bool SGCloudField::reposition( const SGVec3f& p, const SGVec3f& up, double lon,
|
||||
// First time or very large distance
|
||||
SGVec3<double> cart;
|
||||
SGGeodesy::SGGeodToCart(SGGeod::fromRad(lon, lat), cart);
|
||||
T.makeTranslate(cart.osg());
|
||||
T.makeTranslate(toOsg(cart));
|
||||
|
||||
LON.makeRotate(lon, osg::Vec3(0, 0, 1));
|
||||
LAT.makeRotate(90.0 * SGD_DEGREES_TO_RADIANS - lat, osg::Vec3(0, 1, 0));
|
||||
@@ -129,7 +129,7 @@ bool SGCloudField::reposition( const SGVec3f& p, const SGVec3f& up, double lon,
|
||||
|
||||
SGVec3<double> cart;
|
||||
SGGeodesy::SGGeodToCart(SGGeod::fromRad(cld_pos.getLongitudeRad(), cld_pos.getLatitudeRad()), cart);
|
||||
T.makeTranslate(cart.osg());
|
||||
T.makeTranslate(toOsg(cart));
|
||||
|
||||
LON.makeRotate(cld_pos.getLongitudeRad(), osg::Vec3(0, 0, 1));
|
||||
LAT.makeRotate(90.0 * SGD_DEGREES_TO_RADIANS - cld_pos.getLatitudeRad(), osg::Vec3(0, 1, 0));
|
||||
@@ -274,7 +274,7 @@ void SGCloudField::addCloud( SGVec3f& pos, SGNewCloud *cloud) {
|
||||
|
||||
osg::ref_ptr<osg::PositionAttitudeTransform> transform = new osg::PositionAttitudeTransform;
|
||||
|
||||
transform->setPosition(pos.osg());
|
||||
transform->setPosition(toOsg(pos));
|
||||
transform->addChild(geode.get());
|
||||
|
||||
field_group[x][y]->addChild(transform.get(), true);
|
||||
|
||||
@@ -258,7 +258,7 @@ SGSkyDome::repaint( const SGVec3f& sun_color, const SGVec3f& sky_color,
|
||||
const float upperVisFactor = 1.0 - vis_factor * (0.7 + 0.3 * cvf/45000);
|
||||
const float middleVisFactor = 1.0 - vis_factor * (0.1 + 0.85 * cvf/45000);
|
||||
|
||||
(*dome_cl)[0] = sky_color.osg();
|
||||
(*dome_cl)[0] = toOsg(sky_color);
|
||||
simgear::VectorArrayAdapter<Vec3Array> colors(*dome_cl, numBands, 1);
|
||||
const double saif = sun_angle/SG_PI;
|
||||
static const SGVec3f blueShift(0.8, 1.0, 1.2);
|
||||
@@ -271,9 +271,9 @@ SGSkyDome::repaint( const SGVec3f& sun_color, const SGVec3f& sky_color,
|
||||
for (int i = 0; i < halfBands+1; i++) {
|
||||
SGVec3f diff = mult(skyFogDelta, blueShift);
|
||||
diff *= (0.8 + saif - ((halfBands-i)/10));
|
||||
colors(2, i) = (sky_color - upperVisFactor * diff).osg();
|
||||
colors(3, i) = (sky_color - middleVisFactor * diff + middle_amt).osg();
|
||||
colors(4, i) = (fog_color + outer_amt).osg();
|
||||
colors(2, i) = toOsg(sky_color - upperVisFactor * diff);
|
||||
colors(3, i) = toOsg(sky_color - middleVisFactor * diff + middle_amt);
|
||||
colors(4, i) = toOsg(fog_color + outer_amt);
|
||||
colors(0, i) = simgear::math::lerp(toOsg(sky_color), colors(2, i), .3942);
|
||||
colors(1, i) = simgear::math::lerp(toOsg(sky_color), colors(2, i), .7885);
|
||||
for (int j = 0; j < numRings - 1; ++j)
|
||||
@@ -292,7 +292,7 @@ SGSkyDome::repaint( const SGVec3f& sun_color, const SGVec3f& sky_color,
|
||||
numBands);
|
||||
|
||||
for ( int i = 0; i < numBands; i++ )
|
||||
colors(numRings - 1, i) = fog_color.osg();
|
||||
colors(numRings - 1, i) = toOsg(fog_color);
|
||||
dome_cl->dirty();
|
||||
return true;
|
||||
}
|
||||
@@ -313,7 +313,7 @@ SGSkyDome::reposition( const SGVec3f& p, double _asl,
|
||||
// Translate to view position
|
||||
// Point3D zero_elev = current_view.get_cur_zero_elev();
|
||||
// xglTranslatef( zero_elev.x(), zero_elev.y(), zero_elev.z() );
|
||||
T.makeTranslate( p.osg() );
|
||||
T.makeTranslate( toOsg(p) );
|
||||
|
||||
// printf(" Translated to %.2f %.2f %.2f\n",
|
||||
// zero_elev.x, zero_elev.y, zero_elev.z );
|
||||
|
||||
@@ -131,7 +131,7 @@ bool SGSky::repaint( const SGSkyColor &sc, const SGEphemeris& eph )
|
||||
disable();
|
||||
}
|
||||
SGCloudField::updateFog((double)effective_visibility,
|
||||
osg::Vec4f(sc.fog_color.osg(), 1.0f));
|
||||
osg::Vec4f(toOsg(sc.fog_color), 1.0f));
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -150,7 +150,7 @@ bool SGSky::reposition( const SGSkyState &st, const SGEphemeris& eph, double dt
|
||||
dome->reposition( st.zero_elev, st.alt, st.lon, st.lat, st.spin );
|
||||
|
||||
osg::Matrix m = osg::Matrix::rotate(angleRad, osg::Vec3(0, 0, -1));
|
||||
m.postMultTranslate(st.view_pos.osg());
|
||||
m.postMultTranslate(toOsg(st.view_pos));
|
||||
_ephTransform->setMatrix(m);
|
||||
|
||||
double sun_ra = eph.getSunRightAscension();
|
||||
|
||||
@@ -35,15 +35,15 @@ void GroundLightManager::update(const SGUpdateVisitor* updateVisitor)
|
||||
SGVec4f fogColor = updateVisitor->getFogColor();
|
||||
fog = static_cast<osg::Fog*>(runwayLightSS
|
||||
->getAttribute(StateAttribute::FOG));
|
||||
fog->setColor(fogColor.osg());
|
||||
fog->setColor(toOsg(fogColor));
|
||||
fog->setDensity(updateVisitor->getRunwayFogExp2Density());
|
||||
fog = static_cast<osg::Fog*>(taxiLightSS
|
||||
->getAttribute(StateAttribute::FOG));
|
||||
fog->setColor(fogColor.osg());
|
||||
fog->setColor(toOsg(fogColor));
|
||||
fog->setDensity(updateVisitor->getTaxiFogExp2Density());
|
||||
fog = static_cast<osg::Fog*>(groundLightSS
|
||||
->getAttribute(StateAttribute::FOG));
|
||||
fog->setColor(fogColor.osg());
|
||||
fog->setColor(toOsg(fogColor));
|
||||
fog->setDensity(updateVisitor->getGroundLightsFogExp2Density());
|
||||
}
|
||||
|
||||
|
||||
@@ -140,9 +140,9 @@ void OceanMesh::calcMesh(const SGVec3d& cartCenter, const SGQuatd& orient,
|
||||
|
||||
for (int j = 0; j < latPoints; j++) {
|
||||
for (int i = 0; i < lonPoints; ++i) {
|
||||
vlArray(j, i) = rel[j][i].osg();
|
||||
nlArray(j, i) = normals[j][i].osg();
|
||||
tlArray(j, i) = texsArray(j, i).toSGVec2f().osg();
|
||||
vlArray(j, i) = toOsg(rel[j][i]);
|
||||
nlArray(j, i) = toOsg(normals[j][i]);
|
||||
tlArray(j, i) = toOsg(texsArray(j, i).toSGVec2f());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -313,8 +313,8 @@ osg::Node* SGOceanTile(const SGBucket& b, SGMaterialLib *matlib)
|
||||
|
||||
osg::MatrixTransform* transform = new osg::MatrixTransform;
|
||||
transform->setName("Ocean");
|
||||
transform->setMatrix(osg::Matrix::rotate(hlOr.osg())*
|
||||
osg::Matrix::translate(cartCenter.osg()));
|
||||
transform->setMatrix(osg::Matrix::rotate(toOsg(hlOr))*
|
||||
osg::Matrix::translate(toOsg(cartCenter)));
|
||||
transform->addChild(geode);
|
||||
|
||||
return transform;
|
||||
|
||||
@@ -309,25 +309,25 @@ public:
|
||||
triangle_ref triangle = triangles[i];
|
||||
if (indexMap[triangle[0]] == invalid) {
|
||||
indexMap[triangle[0]] = vertices->size();
|
||||
vertices->push_back(getVertex(triangle[0]).vertex.osg());
|
||||
normals->push_back(getVertex(triangle[0]).normal.osg());
|
||||
texCoords->push_back(getVertex(triangle[0]).texCoord.osg());
|
||||
vertices->push_back(toOsg(getVertex(triangle[0]).vertex));
|
||||
normals->push_back(toOsg(getVertex(triangle[0]).normal));
|
||||
texCoords->push_back(toOsg(getVertex(triangle[0]).texCoord));
|
||||
}
|
||||
deFacade.push_back(indexMap[triangle[0]]);
|
||||
|
||||
if (indexMap[triangle[1]] == invalid) {
|
||||
indexMap[triangle[1]] = vertices->size();
|
||||
vertices->push_back(getVertex(triangle[1]).vertex.osg());
|
||||
normals->push_back(getVertex(triangle[1]).normal.osg());
|
||||
texCoords->push_back(getVertex(triangle[1]).texCoord.osg());
|
||||
vertices->push_back(toOsg(getVertex(triangle[1]).vertex));
|
||||
normals->push_back(toOsg(getVertex(triangle[1]).normal));
|
||||
texCoords->push_back(toOsg(getVertex(triangle[1]).texCoord));
|
||||
}
|
||||
deFacade.push_back(indexMap[triangle[1]]);
|
||||
|
||||
if (indexMap[triangle[2]] == invalid) {
|
||||
indexMap[triangle[2]] = vertices->size();
|
||||
vertices->push_back(getVertex(triangle[2]).vertex.osg());
|
||||
normals->push_back(getVertex(triangle[2]).normal.osg());
|
||||
texCoords->push_back(getVertex(triangle[2]).texCoord.osg());
|
||||
vertices->push_back(toOsg(getVertex(triangle[2]).vertex));
|
||||
normals->push_back(toOsg(getVertex(triangle[2]).normal));
|
||||
texCoords->push_back(toOsg(getVertex(triangle[2]).texCoord));
|
||||
}
|
||||
deFacade.push_back(indexMap[triangle[2]]);
|
||||
}
|
||||
|
||||
@@ -94,7 +94,7 @@ SGVasiDrawable::drawImplementation(osg::RenderInfo& renderInfo) const
|
||||
// Retrieve the eye point in local coords
|
||||
osg::Matrix m;
|
||||
m.invert(renderInfo.getState()->getModelViewMatrix());
|
||||
SGVec3f eyePoint(m.preMult(osg::Vec3(0, 0, 0)));
|
||||
SGVec3f eyePoint(toSG(m.preMult(osg::Vec3(0, 0, 0))));
|
||||
|
||||
// paint the points
|
||||
for (unsigned i = 0; i < _lights.size(); ++i)
|
||||
@@ -106,7 +106,7 @@ SGVasiDrawable::computeBound() const
|
||||
{
|
||||
osg::BoundingBox bb;
|
||||
for (unsigned i = 0; i < _lights.size(); ++i)
|
||||
bb.expandBy(_lights[i].position.osg());
|
||||
bb.expandBy(toOsg(_lights[i].position));
|
||||
|
||||
// blow up to avoid being victim to small feature culling ...
|
||||
bb.expandBy(bb._min - osg::Vec3(1, 1, 1));
|
||||
|
||||
@@ -181,7 +181,7 @@ Geode* createTreeGeode(float width, float height, int varieties)
|
||||
|
||||
void addTreeToLeafGeode(Geode* geode, const SGVec3f& p)
|
||||
{
|
||||
const Vec3& pos = p.osg();
|
||||
Vec3 pos = toOsg(p);
|
||||
unsigned int numDrawables = geode->getNumDrawables();
|
||||
Geometry* geom
|
||||
= static_cast<Geometry*>(geode->getDrawable(numDrawables - 1));
|
||||
@@ -287,7 +287,7 @@ struct GetTreeCoord
|
||||
{
|
||||
Vec3 operator() (const TreeBin::Tree& tree) const
|
||||
{
|
||||
return tree.position.osg();
|
||||
return toOsg(tree.position);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -300,8 +300,8 @@ struct TreeTransformer
|
||||
TreeTransformer(Matrix& mat_) : mat(mat_) {}
|
||||
TreeBin::Tree operator()(const TreeBin::Tree& tree) const
|
||||
{
|
||||
const Vec3& pos = tree.position.osg();
|
||||
return TreeBin::Tree(SGVec3f(pos * mat));
|
||||
Vec3 pos = toOsg(tree.position);
|
||||
return TreeBin::Tree(toSG(pos * mat));
|
||||
}
|
||||
Matrix mat;
|
||||
};
|
||||
|
||||
@@ -616,7 +616,7 @@ SGLoadBTG(const std::string& path, SGMaterialLib *matlib, bool calc_lights, bool
|
||||
// location, and then apply the rotation matrix created
|
||||
// above, with an additional random heading rotation if appropriate.
|
||||
osg::Matrix transformMat;
|
||||
transformMat = osg::Matrix::translate(obj.position.osg());
|
||||
transformMat = osg::Matrix::translate(toOsg(obj.position));
|
||||
if (obj.model->get_heading_type() == SGMatModel::HEADING_RANDOM) {
|
||||
// Rotate the object around the z axis.
|
||||
double hdg = mt_rand(&seed) * M_PI * 2;
|
||||
@@ -758,8 +758,8 @@ SGLoadBTG(const std::string& path, SGMaterialLib *matlib, bool calc_lights, bool
|
||||
// The toplevel transform for that tile.
|
||||
osg::MatrixTransform* transform = new osg::MatrixTransform;
|
||||
transform->setName(path);
|
||||
transform->setMatrix(osg::Matrix::rotate(hlOr.osg())*
|
||||
osg::Matrix::translate(center.osg()));
|
||||
transform->setMatrix(osg::Matrix::rotate(toOsg(hlOr))*
|
||||
osg::Matrix::translate(toOsg(center)));
|
||||
transform->addChild(terrainGroup);
|
||||
if (lightGroup->getNumChildren() > 0) {
|
||||
osg::LOD* lightLOD = new osg::LOD;
|
||||
|
||||
@@ -237,8 +237,8 @@ SGLightFactory::getLightDrawable(const SGLightBin::Light& light)
|
||||
osg::Vec3Array* vertices = new osg::Vec3Array;
|
||||
osg::Vec4Array* colors = new osg::Vec4Array;
|
||||
|
||||
vertices->push_back(light.position.osg());
|
||||
colors->push_back(light.color.osg());
|
||||
vertices->push_back(toOsg(light.position));
|
||||
colors->push_back(toOsg(light.color));
|
||||
|
||||
osg::Geometry* geometry = new osg::Geometry;
|
||||
geometry->setVertexArray(vertices);
|
||||
@@ -270,12 +270,12 @@ SGLightFactory::getLightDrawable(const SGDirectionalLightBin::Light& light)
|
||||
SGVec3f perp1 = perpendicular(normal);
|
||||
SGVec3f perp2 = cross(normal, perp1);
|
||||
SGVec3f position = light.position;
|
||||
vertices->push_back(position.osg());
|
||||
vertices->push_back((position + perp1).osg());
|
||||
vertices->push_back((position + perp2).osg());
|
||||
colors->push_back(visibleColor.osg());
|
||||
colors->push_back(invisibleColor.osg());
|
||||
colors->push_back(invisibleColor.osg());
|
||||
vertices->push_back(toOsg(position));
|
||||
vertices->push_back(toOsg(position + perp1));
|
||||
vertices->push_back(toOsg(position + perp2));
|
||||
colors->push_back(toOsg(visibleColor));
|
||||
colors->push_back(toOsg(invisibleColor));
|
||||
colors->push_back(toOsg(invisibleColor));
|
||||
|
||||
osg::Geometry* geometry = new osg::Geometry;
|
||||
geometry->setVertexArray(vertices);
|
||||
@@ -307,10 +307,10 @@ SGLightFactory::getLights(const SGLightBin& lights, unsigned inc, float alphaOff
|
||||
osg::Vec4Array* colors = new osg::Vec4Array;
|
||||
|
||||
for (unsigned i = 0; i < lights.getNumLights(); i += inc) {
|
||||
vertices->push_back(lights.getLight(i).position.osg());
|
||||
vertices->push_back(toOsg(lights.getLight(i).position));
|
||||
SGVec4f color = lights.getLight(i).color;
|
||||
color[3] = SGMiscf::max(0, SGMiscf::min(1, color[3] + alphaOff));
|
||||
colors->push_back(color.osg());
|
||||
colors->push_back(toOsg(color));
|
||||
}
|
||||
|
||||
osg::Geometry* geometry = new osg::Geometry;
|
||||
@@ -358,12 +358,12 @@ SGLightFactory::getLights(const SGDirectionalLightBin& lights)
|
||||
SGVec3f perp1 = perpendicular(normal);
|
||||
SGVec3f perp2 = cross(normal, perp1);
|
||||
SGVec3f position = lights.getLight(i).position;
|
||||
vertices->push_back(position.osg());
|
||||
vertices->push_back((position + perp1).osg());
|
||||
vertices->push_back((position + perp2).osg());
|
||||
colors->push_back(visibleColor.osg());
|
||||
colors->push_back(invisibleColor.osg());
|
||||
colors->push_back(invisibleColor.osg());
|
||||
vertices->push_back(toOsg(position));
|
||||
vertices->push_back(toOsg(position + perp1));
|
||||
vertices->push_back(toOsg(position + perp2));
|
||||
colors->push_back(toOsg(visibleColor));
|
||||
colors->push_back(toOsg(invisibleColor));
|
||||
colors->push_back(toOsg(invisibleColor));
|
||||
}
|
||||
|
||||
osg::Geometry* geometry = new osg::Geometry;
|
||||
|
||||
@@ -40,7 +40,7 @@ public:
|
||||
const SGQuatd& globalViewOrientation)
|
||||
{
|
||||
mGlobalGeodEyePos = SGGeod::fromCart(globalEyePos);
|
||||
_currentEyePos = globalEyePos.osg();
|
||||
_currentEyePos = toOsg(globalEyePos);
|
||||
mGlobalEyePos = globalEyePos;
|
||||
mGlobalViewOr = globalViewOrientation;
|
||||
mGlobalHorizLocalOr = SGQuatd::fromLonLat(mGlobalGeodEyePos);
|
||||
|
||||
Reference in New Issue
Block a user