Removed the exclusion of CullSettings from the genwrapper.conf, and then changed the CullStack RefMatrix& methods to RefMatrix*
as the RefMatrix& versions caused the wrappers to fail.
This commit is contained in:
@@ -88,8 +88,8 @@ void CURRENT_CLASS::traverse(osg::NodeVisitor &nv)
|
||||
|
||||
// We are in the cull traversal, so first collect information on the
|
||||
// current modelview and projection matrices and viewport.
|
||||
osg::RefMatrix& modelview = cv->getModelViewMatrix();
|
||||
osg::RefMatrix& projection = cv->getProjectionMatrix();
|
||||
osg::RefMatrix& modelview = *(cv->getModelViewMatrix());
|
||||
osg::RefMatrix& projection = *(cv->getProjectionMatrix());
|
||||
osg::Viewport* viewport = cv->getViewport();
|
||||
|
||||
// Prepare for scene traversal.
|
||||
|
||||
@@ -183,7 +183,7 @@ class TexMatCullCallback : public osg::NodeCallback
|
||||
osgUtil::CullVisitor* cv = dynamic_cast<osgUtil::CullVisitor*>(nv);
|
||||
if (cv)
|
||||
{
|
||||
osg::Quat quat = cv->getModelViewMatrix().getRotate();
|
||||
osg::Quat quat = cv->getModelViewMatrix()->getRotate();
|
||||
_texmat->setMatrix(osg::Matrix::rotate(quat.inverse()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -181,7 +181,7 @@ public:
|
||||
osgUtil::CullVisitor* cv = dynamic_cast<osgUtil::CullVisitor*>(nv);
|
||||
if (cv)
|
||||
{
|
||||
const osg::Matrix& MV = cv->getModelViewMatrix();
|
||||
const osg::Matrix& MV = *(cv->getModelViewMatrix());
|
||||
const osg::Matrix R = osg::Matrix::rotate( osg::DegreesToRadians(112.0f), 0.0f,0.0f,1.0f)*
|
||||
osg::Matrix::rotate( osg::DegreesToRadians(90.0f), 1.0f,0.0f,0.0f);
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@ end
|
||||
#############################################################################
|
||||
|
||||
|
||||
suppress reflector "osg::CullStack"
|
||||
# suppress reflector "osg::CullStack"
|
||||
|
||||
ignore file "osgViewer/GraphicsWindowX11"
|
||||
ignore file "osgViewer/GraphicsWindowWin32"
|
||||
|
||||
@@ -131,10 +131,10 @@ class OSG_EXPORT CullStack : public osg::CullSettings
|
||||
inline const CullingSet& getCurrentCullingSet() const { return *_back_modelviewCullingStack; }
|
||||
|
||||
inline osg::Viewport* getViewport();
|
||||
inline osg::RefMatrix& getModelViewMatrix();
|
||||
inline osg::RefMatrix& getProjectionMatrix();
|
||||
inline osg::RefMatrix* getModelViewMatrix();
|
||||
inline osg::RefMatrix* getProjectionMatrix();
|
||||
inline osg::Matrix getWindowMatrix();
|
||||
inline const osg::RefMatrix& getMVPW();
|
||||
inline const osg::RefMatrix* getMVPW();
|
||||
|
||||
inline const osg::Vec3& getReferenceViewPoint() const { return _referenceViewPoints.back(); }
|
||||
inline void pushReferenceViewPoint(const osg::Vec3& viewPoint) { _referenceViewPoints.push_back(viewPoint); }
|
||||
@@ -217,27 +217,27 @@ inline osg::Viewport* CullStack::getViewport()
|
||||
}
|
||||
}
|
||||
|
||||
inline osg::RefMatrix& CullStack::getModelViewMatrix()
|
||||
inline osg::RefMatrix* CullStack::getModelViewMatrix()
|
||||
{
|
||||
if (!_modelviewStack.empty())
|
||||
{
|
||||
return *_modelviewStack.back();
|
||||
return _modelviewStack.back().get();
|
||||
}
|
||||
else
|
||||
{
|
||||
return *_identity;
|
||||
return _identity.get();
|
||||
}
|
||||
}
|
||||
|
||||
inline osg::RefMatrix& CullStack::getProjectionMatrix()
|
||||
inline osg::RefMatrix* CullStack::getProjectionMatrix()
|
||||
{
|
||||
if (!_projectionStack.empty())
|
||||
{
|
||||
return *_projectionStack.back();
|
||||
return _projectionStack.back().get();
|
||||
}
|
||||
else
|
||||
{
|
||||
return *_identity;
|
||||
return _identity.get();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -254,21 +254,21 @@ inline osg::Matrix CullStack::getWindowMatrix()
|
||||
}
|
||||
}
|
||||
|
||||
inline const osg::RefMatrix& CullStack::getMVPW()
|
||||
inline const osg::RefMatrix* CullStack::getMVPW()
|
||||
{
|
||||
if (!_MVPW_Stack.empty())
|
||||
{
|
||||
if (!_MVPW_Stack.back())
|
||||
{
|
||||
_MVPW_Stack.back() = createOrReuseMatrix(getModelViewMatrix());
|
||||
(*_MVPW_Stack.back()) *= getProjectionMatrix();
|
||||
_MVPW_Stack.back() = createOrReuseMatrix(*getModelViewMatrix());
|
||||
(*_MVPW_Stack.back()) *= *(getProjectionMatrix());
|
||||
(*_MVPW_Stack.back()) *= getWindowMatrix();
|
||||
}
|
||||
return *_MVPW_Stack.back();
|
||||
return _MVPW_Stack.back().get();
|
||||
}
|
||||
else
|
||||
{
|
||||
return *_identity;
|
||||
return _identity.get();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -118,7 +118,7 @@ void AutoTransform::accept(NodeVisitor& nv)
|
||||
osg::Vec3 localUp = cs->getUpLocal();
|
||||
osg::Vec3 position = getPosition();
|
||||
|
||||
const osg::Matrix& projection = cs->getProjectionMatrix();
|
||||
const osg::Matrix& projection = *(cs->getProjectionMatrix());
|
||||
|
||||
bool doUpdate = _firstTimeToInitEyePoint;
|
||||
if (!_firstTimeToInitEyePoint)
|
||||
@@ -161,7 +161,7 @@ void AutoTransform::accept(NodeVisitor& nv)
|
||||
|
||||
if (_autoRotateMode==ROTATE_TO_SCREEN)
|
||||
{
|
||||
osg::Quat rotation = cs->getModelViewMatrix().getRotate();
|
||||
osg::Quat rotation = cs->getModelViewMatrix()->getRotate();
|
||||
setRotation(rotation.inverse());
|
||||
}
|
||||
else if (_autoRotateMode==ROTATE_TO_CAMERA)
|
||||
|
||||
@@ -87,7 +87,7 @@ void CollectOccludersVisitor::apply(osg::Transform& node)
|
||||
// push the culling mode.
|
||||
pushCurrentMask();
|
||||
|
||||
ref_ptr<osg::RefMatrix> matrix = createOrReuseMatrix(getModelViewMatrix());
|
||||
ref_ptr<osg::RefMatrix> matrix = createOrReuseMatrix(*getModelViewMatrix());
|
||||
node.computeLocalToWorldMatrix(*matrix,this);
|
||||
pushModelViewMatrix(matrix.get(), node.getReferenceFrame());
|
||||
|
||||
|
||||
@@ -270,7 +270,7 @@ void CullStack::popModelViewMatrix()
|
||||
void CullStack::computeFrustumVolume()
|
||||
{
|
||||
osg::Matrix invP;
|
||||
invP.invert(getProjectionMatrix());
|
||||
invP.invert(*getProjectionMatrix());
|
||||
|
||||
osg::Vec3 f1(-1,-1,-1); f1 = f1*invP;
|
||||
osg::Vec3 f2(-1, 1,-1); f2 = f2*invP;
|
||||
|
||||
@@ -182,8 +182,8 @@ bool ShadowVolumeOccluder::computeOccluder(const NodePath& nodePath,const Convex
|
||||
|
||||
CullingSet& cullingset = cullStack.getCurrentCullingSet();
|
||||
|
||||
const RefMatrix& MV = cullStack.getModelViewMatrix();
|
||||
const RefMatrix& P = cullStack.getProjectionMatrix();
|
||||
const RefMatrix& MV = *cullStack.getModelViewMatrix();
|
||||
const RefMatrix& P = *cullStack.getProjectionMatrix();
|
||||
|
||||
// take a reference to the NodePath to this occluder.
|
||||
_nodePath = nodePath;
|
||||
|
||||
@@ -275,21 +275,21 @@ void PrecipitationEffect::traverse(osg::NodeVisitor& nv)
|
||||
if (!precipitationDrawableSet->_quadPrecipitationDrawable->getCurrentCellMatrixMap().empty())
|
||||
{
|
||||
cv->pushStateSet(precipitationDrawableSet->_quadPrecipitationDrawable->getStateSet());
|
||||
cv->addDrawableAndDepth(precipitationDrawableSet->_quadPrecipitationDrawable.get(),&cv->getModelViewMatrix(),depth);
|
||||
cv->addDrawableAndDepth(precipitationDrawableSet->_quadPrecipitationDrawable.get(),cv->getModelViewMatrix(),depth);
|
||||
cv->popStateSet();
|
||||
}
|
||||
|
||||
if (!precipitationDrawableSet->_linePrecipitationDrawable->getCurrentCellMatrixMap().empty())
|
||||
{
|
||||
cv->pushStateSet(precipitationDrawableSet->_linePrecipitationDrawable->getStateSet());
|
||||
cv->addDrawableAndDepth(precipitationDrawableSet->_linePrecipitationDrawable.get(),&cv->getModelViewMatrix(),depth);
|
||||
cv->addDrawableAndDepth(precipitationDrawableSet->_linePrecipitationDrawable.get(),cv->getModelViewMatrix(),depth);
|
||||
cv->popStateSet();
|
||||
}
|
||||
|
||||
if (!precipitationDrawableSet->_pointPrecipitationDrawable->getCurrentCellMatrixMap().empty())
|
||||
{
|
||||
cv->pushStateSet(precipitationDrawableSet->_pointPrecipitationDrawable->getStateSet());
|
||||
cv->addDrawableAndDepth(precipitationDrawableSet->_pointPrecipitationDrawable.get(),&cv->getModelViewMatrix(),depth);
|
||||
cv->addDrawableAndDepth(precipitationDrawableSet->_pointPrecipitationDrawable.get(),cv->getModelViewMatrix(),depth);
|
||||
cv->popStateSet();
|
||||
}
|
||||
|
||||
@@ -731,7 +731,7 @@ void PrecipitationEffect::cull(PrecipitationDrawableSet& pds, osgUtil::CullVisit
|
||||
pds._pointPrecipitationDrawable->newFrame();
|
||||
|
||||
osg::Matrix inverse_modelview;
|
||||
inverse_modelview.invert(cv->getModelViewMatrix());
|
||||
inverse_modelview.invert(*(cv->getModelViewMatrix()));
|
||||
|
||||
osg::Vec3 eyeLocal = osg::Vec3(0.0f,0.0f,0.0f) * inverse_modelview;
|
||||
//osg::notify(osg::NOTICE)<<" eyeLocal "<<eyeLocal<<std::endl;
|
||||
@@ -746,8 +746,8 @@ void PrecipitationEffect::cull(PrecipitationDrawableSet& pds, osgUtil::CullVisit
|
||||
|
||||
osg::Polytope frustum;
|
||||
frustum.setToUnitFrustum(false,false);
|
||||
frustum.transformProvidingInverse(cv->getProjectionMatrix());
|
||||
frustum.transformProvidingInverse(cv->getModelViewMatrix());
|
||||
frustum.transformProvidingInverse(*(cv->getProjectionMatrix()));
|
||||
frustum.transformProvidingInverse(*(cv->getModelViewMatrix()));
|
||||
|
||||
float i_delta = _farTransition * _inverse_du.x();
|
||||
float j_delta = _farTransition * _inverse_dv.y();
|
||||
@@ -836,11 +836,11 @@ bool PrecipitationEffect::build(const osg::Vec3 eyeLocal, int i, int j, int k, f
|
||||
return false;
|
||||
}
|
||||
|
||||
*mymodelview = cv->getModelViewMatrix();
|
||||
*mymodelview = *(cv->getModelViewMatrix());
|
||||
mymodelview->preMult(osg::Matrix::translate(position));
|
||||
mymodelview->preMult(osg::Matrix::scale(scale));
|
||||
|
||||
cv->updateCalculatedNearFar(cv->getModelViewMatrix(),bb);
|
||||
cv->updateCalculatedNearFar(*(cv->getModelViewMatrix()),bb);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -105,8 +105,8 @@ void TXPNode::traverse(osg::NodeVisitor& nv)
|
||||
tileMapper->setLODScale(cv->getLODScale());
|
||||
tileMapper->pushReferenceViewPoint(cv->getReferenceViewPoint());
|
||||
tileMapper->pushViewport(cv->getViewport());
|
||||
tileMapper->pushProjectionMatrix(&(cv->getProjectionMatrix()));
|
||||
tileMapper->pushModelViewMatrix(&(cv->getModelViewMatrix()), osg::Transform::RELATIVE_RF);
|
||||
tileMapper->pushProjectionMatrix((cv->getProjectionMatrix()));
|
||||
tileMapper->pushModelViewMatrix((cv->getModelViewMatrix()), osg::Transform::RELATIVE_RF);
|
||||
|
||||
// traverse the scene graph to search for valid tiles
|
||||
accept(*tileMapper);
|
||||
|
||||
@@ -213,7 +213,7 @@ void ShadowMap::cull(osgUtil::CullVisitor& cv)
|
||||
}
|
||||
|
||||
osg::Matrix eyeToWorld;
|
||||
eyeToWorld.invert(cv.getModelViewMatrix());
|
||||
eyeToWorld.invert(*cv.getModelViewMatrix());
|
||||
|
||||
lightpos = lightpos * eyeToWorld;
|
||||
|
||||
@@ -265,7 +265,7 @@ void ShadowMap::cull(osgUtil::CullVisitor& cv)
|
||||
// do RTT camera traversal
|
||||
_camera->accept(cv);
|
||||
|
||||
orig_rs->getPositionalStateContainer()->addPositionedTextureAttribute(_textureUnit, &cv.getModelViewMatrix(), _texgen.get());
|
||||
orig_rs->getPositionalStateContainer()->addPositionedTextureAttribute(_textureUnit, cv.getModelViewMatrix(), _texgen.get());
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -157,7 +157,7 @@ void ShadowTexture::cull(osgUtil::CullVisitor& cv)
|
||||
}
|
||||
|
||||
osg::Matrix eyeToWorld;
|
||||
eyeToWorld.invert(cv.getModelViewMatrix());
|
||||
eyeToWorld.invert(*cv.getModelViewMatrix());
|
||||
|
||||
lightpos = lightpos * eyeToWorld;
|
||||
|
||||
@@ -209,7 +209,7 @@ void ShadowTexture::cull(osgUtil::CullVisitor& cv)
|
||||
// do RTT camera traversal
|
||||
_camera->accept(cv);
|
||||
|
||||
orig_rs->getPositionalStateContainer()->addPositionedTextureAttribute(_textureUnit, &cv.getModelViewMatrix(), _texgen.get());
|
||||
orig_rs->getPositionalStateContainer()->addPositionedTextureAttribute(_textureUnit, cv.getModelViewMatrix(), _texgen.get());
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -326,7 +326,7 @@ void ShadowVolume::cull(osgUtil::CullVisitor& cv)
|
||||
_lightpos = lightpos;
|
||||
|
||||
osg::Matrix eyeToWorld;
|
||||
eyeToWorld.invert(cv.getModelViewMatrix());
|
||||
eyeToWorld.invert(*cv.getModelViewMatrix());
|
||||
|
||||
_occluder->computeShadowVolumeGeometry(lightpos * eyeToWorld, *_shadowVolume);
|
||||
}
|
||||
|
||||
@@ -142,7 +142,7 @@ void Impostor::traverse(osg::NodeVisitor& nv)
|
||||
// within the impostor distance threshold therefore attempt
|
||||
// to use impostor instead.
|
||||
|
||||
RefMatrix& matrix = cv->getModelViewMatrix();
|
||||
RefMatrix& matrix = *cv->getModelViewMatrix();
|
||||
|
||||
// search for the best fit ImpostorSprite;
|
||||
ImpostorSprite* impostorSprite = findBestImpostorSprite(contextID,eyeLocal);
|
||||
@@ -150,7 +150,7 @@ void Impostor::traverse(osg::NodeVisitor& nv)
|
||||
if (impostorSprite)
|
||||
{
|
||||
// impostor found, now check to see if it is good enough to use
|
||||
float error = impostorSprite->calcPixelError(cv->getMVPW());
|
||||
float error = impostorSprite->calcPixelError(*(cv->getMVPW()));
|
||||
|
||||
if (error>cv->getImpostorPixelErrorThreshold())
|
||||
{
|
||||
@@ -220,7 +220,7 @@ ImpostorSprite* Impostor::createImpostorSprite(osgUtil::CullVisitor* cv)
|
||||
// projection matrix...
|
||||
bool isPerspectiveProjection = true;
|
||||
|
||||
const Matrix& matrix = cv->getModelViewMatrix();
|
||||
const Matrix& matrix = *(cv->getModelViewMatrix());
|
||||
const BoundingSphere& bs = getBound();
|
||||
osg::Vec3 eye_local = cv->getEyeLocal();
|
||||
|
||||
@@ -264,7 +264,7 @@ ImpostorSprite* Impostor::createImpostorSprite(osgUtil::CullVisitor* cv)
|
||||
|
||||
// convert the corners of the sprite (in world coords) into their
|
||||
// equivilant window coordinates by using the camera's project method.
|
||||
const osg::Matrix& MVPW = cv->getMVPW();
|
||||
const osg::Matrix& MVPW = *(cv->getMVPW());
|
||||
Vec3 c00_win = c00 * MVPW;
|
||||
Vec3 c11_win = c11 * MVPW;
|
||||
|
||||
@@ -448,7 +448,7 @@ ImpostorSprite* Impostor::createImpostorSprite(osgUtil::CullVisitor* cv)
|
||||
osg::Matrix::translate(-eye_local)*
|
||||
osg::Matrix::rotate(rotate_from,rotate_to)*
|
||||
osg::Matrix::translate(eye_local)*
|
||||
cv->getModelViewMatrix();
|
||||
*cv->getModelViewMatrix();
|
||||
|
||||
camera->setReferenceFrame(osg::Transform::ABSOLUTE_RF);
|
||||
camera->setViewMatrix(rotate_matrix);
|
||||
|
||||
@@ -155,8 +155,8 @@ void LightPointNode::traverse(osg::NodeVisitor& nv)
|
||||
if (cv /*&& !cv->isCulled(_bbox)*/)
|
||||
{
|
||||
|
||||
osg::Matrix matrix = cv->getModelViewMatrix();
|
||||
osg::RefMatrix& projection = cv->getProjectionMatrix();
|
||||
osg::Matrix matrix = *(cv->getModelViewMatrix());
|
||||
osg::RefMatrix& projection = *(cv->getProjectionMatrix());
|
||||
osgUtil::StateGraph* rg = cv->getCurrentStateGraph();
|
||||
|
||||
if (rg->leaves_empty())
|
||||
|
||||
@@ -257,7 +257,7 @@ void OverlayNode::traverse(osg::NodeVisitor& nv)
|
||||
|
||||
_texgenNode->accept(*cv);
|
||||
|
||||
const osg::Matrix modelView = (cv->getModelViewMatrix());
|
||||
const osg::Matrix modelView = *(cv->getModelViewMatrix());
|
||||
osg::Polytope viewTextureFrustum;
|
||||
viewTextureFrustum.setAndTransformProvidingInverse(_textureFrustum, osg::Matrix::inverse(modelView));
|
||||
|
||||
|
||||
@@ -735,7 +735,7 @@ void CullVisitor::apply(Geode& node)
|
||||
// traverse any call callbacks and traverse any children.
|
||||
handle_cull_callbacks_and_traverse(node);
|
||||
|
||||
RefMatrix& matrix = getModelViewMatrix();
|
||||
RefMatrix& matrix = *getModelViewMatrix();
|
||||
for(unsigned int i=0;i<node.getNumDrawables();++i)
|
||||
{
|
||||
Drawable* drawable = node.getDrawable(i);
|
||||
@@ -813,7 +813,7 @@ void CullVisitor::apply(Billboard& node)
|
||||
handle_cull_callbacks_and_traverse(node);
|
||||
|
||||
const Vec3& eye_local = getEyeLocal();
|
||||
const RefMatrix& modelview = getModelViewMatrix();
|
||||
const RefMatrix& modelview = *getModelViewMatrix();
|
||||
|
||||
for(unsigned int i=0;i<node.getNumDrawables();++i)
|
||||
{
|
||||
@@ -867,7 +867,7 @@ void CullVisitor::apply(LightSource& node)
|
||||
{
|
||||
if (node.getReferenceFrame()==osg::LightSource::RELATIVE_RF)
|
||||
{
|
||||
RefMatrix& matrix = getModelViewMatrix();
|
||||
RefMatrix& matrix = *getModelViewMatrix();
|
||||
addPositionedAttribute(&matrix,light);
|
||||
}
|
||||
else
|
||||
@@ -889,7 +889,7 @@ void CullVisitor::apply(ClipNode& node)
|
||||
StateSet* node_state = node.getStateSet();
|
||||
if (node_state) pushStateSet(node_state);
|
||||
|
||||
RefMatrix& matrix = getModelViewMatrix();
|
||||
RefMatrix& matrix = *getModelViewMatrix();
|
||||
|
||||
const ClipNode::ClipPlaneList& planes = node.getClipPlaneList();
|
||||
for(ClipNode::ClipPlaneList::const_iterator itr=planes.begin();
|
||||
@@ -914,7 +914,7 @@ void CullVisitor::apply(TexGenNode& node)
|
||||
|
||||
if (node.getReferenceFrame()==osg::TexGenNode::RELATIVE_RF)
|
||||
{
|
||||
RefMatrix& matrix = getModelViewMatrix();
|
||||
RefMatrix& matrix = *getModelViewMatrix();
|
||||
addPositionedTextureAttribute(node.getTextureUnit(), &matrix ,node.getTexGen());
|
||||
}
|
||||
else
|
||||
@@ -959,7 +959,7 @@ void CullVisitor::apply(Transform& node)
|
||||
StateSet* node_state = node.getStateSet();
|
||||
if (node_state) pushStateSet(node_state);
|
||||
|
||||
ref_ptr<RefMatrix> matrix = createOrReuseMatrix(getModelViewMatrix());
|
||||
ref_ptr<RefMatrix> matrix = createOrReuseMatrix(*getModelViewMatrix());
|
||||
node.computeLocalToWorldMatrix(*matrix,this);
|
||||
pushModelViewMatrix(matrix.get(), node.getReferenceFrame());
|
||||
|
||||
@@ -1112,7 +1112,7 @@ void CullVisitor::apply(osg::Camera& camera)
|
||||
// activate all active cull settings from this Camera
|
||||
inheritCullSettings(camera);
|
||||
|
||||
RefMatrix& originalModelView = getModelViewMatrix();
|
||||
RefMatrix& originalModelView = *getModelViewMatrix();
|
||||
|
||||
osg::RefMatrix* projection = 0;
|
||||
osg::RefMatrix* modelview = 0;
|
||||
@@ -1121,13 +1121,13 @@ void CullVisitor::apply(osg::Camera& camera)
|
||||
{
|
||||
if (camera.getTransformOrder()==osg::Camera::POST_MULTIPLY)
|
||||
{
|
||||
projection = createOrReuseMatrix(getProjectionMatrix()*camera.getProjectionMatrix());
|
||||
modelview = createOrReuseMatrix(getModelViewMatrix()*camera.getViewMatrix());
|
||||
projection = createOrReuseMatrix(*getProjectionMatrix()*camera.getProjectionMatrix());
|
||||
modelview = createOrReuseMatrix(*getModelViewMatrix()*camera.getViewMatrix());
|
||||
}
|
||||
else // pre multiply
|
||||
{
|
||||
projection = createOrReuseMatrix(camera.getProjectionMatrix()*getProjectionMatrix());
|
||||
modelview = createOrReuseMatrix(camera.getViewMatrix()*getModelViewMatrix());
|
||||
projection = createOrReuseMatrix(camera.getProjectionMatrix()*(*getProjectionMatrix()));
|
||||
modelview = createOrReuseMatrix(camera.getViewMatrix()*(*getModelViewMatrix()));
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -1228,7 +1228,7 @@ void CullVisitor::apply(osg::Camera& camera)
|
||||
// set up to charge the same PositionalStateContainer is the parent previous stage.
|
||||
osg::Matrix inhertiedMVtolocalMV;
|
||||
inhertiedMVtolocalMV.invert(originalModelView);
|
||||
inhertiedMVtolocalMV.postMult(getModelViewMatrix());
|
||||
inhertiedMVtolocalMV.postMult(*getModelViewMatrix());
|
||||
rtts->setInheritedPositionalStateContainerMatrix(inhertiedMVtolocalMV);
|
||||
rtts->setInheritedPositionalStateContainer(previous_stage->getPositionalStateContainer());
|
||||
|
||||
|
||||
@@ -259,6 +259,8 @@ void View::setUpViewOnSingleScreen(unsigned int screenNum)
|
||||
|
||||
void View::assignSceneDataToCameras()
|
||||
{
|
||||
osg::notify(osg::NOTICE)<<"View::assignSceneDataToCameras()"<<std::endl;
|
||||
|
||||
osg::Node* sceneData = _scene.valid() ? _scene->getSceneData() : 0;
|
||||
|
||||
if (_cameraManipulator.valid())
|
||||
|
||||
@@ -1480,7 +1480,7 @@ void Viewer::setUpRenderingSupport()
|
||||
}
|
||||
|
||||
|
||||
// osg::notify(osg::NOTICE)<<"localCamera"<<std::endl;
|
||||
osg::notify(osg::NOTICE)<<"localCamera "<<camera->getName()<<std::endl;
|
||||
ViewerDoubleBufferedRenderingOperation* vdbro = new ViewerDoubleBufferedRenderingOperation(graphicsThreadDoesCull, sceneViewList[0], sceneViewList[1], dp, _startTick);
|
||||
gc->add(vdbro);
|
||||
++numViewerDoubleBufferedRenderingOperation;
|
||||
|
||||
@@ -33,6 +33,261 @@ TYPE_NAME_ALIAS(std::vector< osg::ShadowVolumeOccluder >, osg::CullStack::Occlud
|
||||
|
||||
TYPE_NAME_ALIAS(std::vector< osg::CullingSet >, osg::CullStack::CullingStack);
|
||||
|
||||
BEGIN_OBJECT_REFLECTOR(osg::CullStack)
|
||||
I_BaseType(osg::CullSettings);
|
||||
I_Constructor0(____CullStack,
|
||||
"",
|
||||
"");
|
||||
I_Method0(void, reset,
|
||||
Properties::NON_VIRTUAL,
|
||||
__void__reset,
|
||||
"",
|
||||
"");
|
||||
I_Method1(void, setOccluderList, IN, const osg::ShadowVolumeOccluderList &, svol,
|
||||
Properties::NON_VIRTUAL,
|
||||
__void__setOccluderList__C5_ShadowVolumeOccluderList_R1,
|
||||
"",
|
||||
"");
|
||||
I_Method0(osg::ShadowVolumeOccluderList &, getOccluderList,
|
||||
Properties::NON_VIRTUAL,
|
||||
__ShadowVolumeOccluderList_R1__getOccluderList,
|
||||
"",
|
||||
"");
|
||||
I_Method0(const osg::ShadowVolumeOccluderList &, getOccluderList,
|
||||
Properties::NON_VIRTUAL,
|
||||
__C5_ShadowVolumeOccluderList_R1__getOccluderList,
|
||||
"",
|
||||
"");
|
||||
I_Method1(void, pushViewport, IN, osg::Viewport *, viewport,
|
||||
Properties::NON_VIRTUAL,
|
||||
__void__pushViewport__osg_Viewport_P1,
|
||||
"",
|
||||
"");
|
||||
I_Method0(void, popViewport,
|
||||
Properties::NON_VIRTUAL,
|
||||
__void__popViewport,
|
||||
"",
|
||||
"");
|
||||
I_Method1(void, pushProjectionMatrix, IN, osg::RefMatrix *, matrix,
|
||||
Properties::NON_VIRTUAL,
|
||||
__void__pushProjectionMatrix__osg_RefMatrix_P1,
|
||||
"",
|
||||
"");
|
||||
I_Method0(void, popProjectionMatrix,
|
||||
Properties::NON_VIRTUAL,
|
||||
__void__popProjectionMatrix,
|
||||
"",
|
||||
"");
|
||||
I_Method2(void, pushModelViewMatrix, IN, osg::RefMatrix *, matrix, IN, osg::Transform::ReferenceFrame, referenceFrame,
|
||||
Properties::NON_VIRTUAL,
|
||||
__void__pushModelViewMatrix__osg_RefMatrix_P1__Transform_ReferenceFrame,
|
||||
"",
|
||||
"");
|
||||
I_Method0(void, popModelViewMatrix,
|
||||
Properties::NON_VIRTUAL,
|
||||
__void__popModelViewMatrix,
|
||||
"",
|
||||
"");
|
||||
I_Method0(float, getFrustumVolume,
|
||||
Properties::NON_VIRTUAL,
|
||||
__float__getFrustumVolume,
|
||||
"",
|
||||
"");
|
||||
I_Method2(float, pixelSize, IN, const osg::Vec3 &, v, IN, float, radius,
|
||||
Properties::NON_VIRTUAL,
|
||||
__float__pixelSize__C5_Vec3_R1__float,
|
||||
"Compute the pixel size of an object at position v, with specified radius. ",
|
||||
"");
|
||||
I_Method1(float, pixelSize, IN, const osg::BoundingSphere &, bs,
|
||||
Properties::NON_VIRTUAL,
|
||||
__float__pixelSize__C5_BoundingSphere_R1,
|
||||
"Compute the pixel size of the bounding sphere. ",
|
||||
"");
|
||||
I_Method2(float, clampedPixelSize, IN, const osg::Vec3 &, v, IN, float, radius,
|
||||
Properties::NON_VIRTUAL,
|
||||
__float__clampedPixelSize__C5_Vec3_R1__float,
|
||||
"Compute the pixel size of an object at position v, with specified radius. ",
|
||||
"fabs()ed to always be positive. ");
|
||||
I_Method1(float, clampedPixelSize, IN, const osg::BoundingSphere &, bs,
|
||||
Properties::NON_VIRTUAL,
|
||||
__float__clampedPixelSize__C5_BoundingSphere_R1,
|
||||
"Compute the pixel size of the bounding sphere. ",
|
||||
"fabs()ed to always be positive. ");
|
||||
I_Method1(void, disableAndPushOccludersCurrentMask, IN, osg::NodePath &, nodePath,
|
||||
Properties::NON_VIRTUAL,
|
||||
__void__disableAndPushOccludersCurrentMask__NodePath_R1,
|
||||
"",
|
||||
"");
|
||||
I_Method1(void, popOccludersCurrentMask, IN, osg::NodePath &, nodePath,
|
||||
Properties::NON_VIRTUAL,
|
||||
__void__popOccludersCurrentMask__NodePath_R1,
|
||||
"",
|
||||
"");
|
||||
I_Method1(bool, isCulled, IN, const std::vector< osg::Vec3 > &, vertices,
|
||||
Properties::NON_VIRTUAL,
|
||||
__bool__isCulled__C5_std_vectorT1_Vec3__R1,
|
||||
"",
|
||||
"");
|
||||
I_Method1(bool, isCulled, IN, const osg::BoundingBox &, bb,
|
||||
Properties::NON_VIRTUAL,
|
||||
__bool__isCulled__C5_BoundingBox_R1,
|
||||
"",
|
||||
"");
|
||||
I_Method1(bool, isCulled, IN, const osg::BoundingSphere &, bs,
|
||||
Properties::NON_VIRTUAL,
|
||||
__bool__isCulled__C5_BoundingSphere_R1,
|
||||
"",
|
||||
"");
|
||||
I_Method1(bool, isCulled, IN, const osg::Node &, node,
|
||||
Properties::NON_VIRTUAL,
|
||||
__bool__isCulled__C5_osg_Node_R1,
|
||||
"",
|
||||
"");
|
||||
I_Method0(void, pushCurrentMask,
|
||||
Properties::NON_VIRTUAL,
|
||||
__void__pushCurrentMask,
|
||||
"",
|
||||
"");
|
||||
I_Method0(void, popCurrentMask,
|
||||
Properties::NON_VIRTUAL,
|
||||
__void__popCurrentMask,
|
||||
"",
|
||||
"");
|
||||
I_Method0(osg::CullStack::CullingStack &, getClipSpaceCullingStack,
|
||||
Properties::NON_VIRTUAL,
|
||||
__CullingStack_R1__getClipSpaceCullingStack,
|
||||
"",
|
||||
"");
|
||||
I_Method0(osg::CullStack::CullingStack &, getProjectionCullingStack,
|
||||
Properties::NON_VIRTUAL,
|
||||
__CullingStack_R1__getProjectionCullingStack,
|
||||
"",
|
||||
"");
|
||||
I_Method0(osg::CullStack::CullingStack &, getModelViewCullingStack,
|
||||
Properties::NON_VIRTUAL,
|
||||
__CullingStack_R1__getModelViewCullingStack,
|
||||
"",
|
||||
"");
|
||||
I_Method0(osg::CullingSet &, getCurrentCullingSet,
|
||||
Properties::NON_VIRTUAL,
|
||||
__CullingSet_R1__getCurrentCullingSet,
|
||||
"",
|
||||
"");
|
||||
I_Method0(const osg::CullingSet &, getCurrentCullingSet,
|
||||
Properties::NON_VIRTUAL,
|
||||
__C5_CullingSet_R1__getCurrentCullingSet,
|
||||
"",
|
||||
"");
|
||||
I_Method0(osg::Viewport *, getViewport,
|
||||
Properties::NON_VIRTUAL,
|
||||
__osg_Viewport_P1__getViewport,
|
||||
"",
|
||||
"");
|
||||
I_Method0(osg::RefMatrix *, getModelViewMatrix,
|
||||
Properties::NON_VIRTUAL,
|
||||
__osg_RefMatrix_P1__getModelViewMatrix,
|
||||
"",
|
||||
"");
|
||||
I_Method0(osg::RefMatrix *, getProjectionMatrix,
|
||||
Properties::NON_VIRTUAL,
|
||||
__osg_RefMatrix_P1__getProjectionMatrix,
|
||||
"",
|
||||
"");
|
||||
I_Method0(osg::Matrix, getWindowMatrix,
|
||||
Properties::NON_VIRTUAL,
|
||||
__osg_Matrix__getWindowMatrix,
|
||||
"",
|
||||
"");
|
||||
I_Method0(const osg::RefMatrix *, getMVPW,
|
||||
Properties::NON_VIRTUAL,
|
||||
__C5_osg_RefMatrix_P1__getMVPW,
|
||||
"",
|
||||
"");
|
||||
I_Method0(const osg::Vec3 &, getReferenceViewPoint,
|
||||
Properties::NON_VIRTUAL,
|
||||
__C5_osg_Vec3_R1__getReferenceViewPoint,
|
||||
"",
|
||||
"");
|
||||
I_Method1(void, pushReferenceViewPoint, IN, const osg::Vec3 &, viewPoint,
|
||||
Properties::NON_VIRTUAL,
|
||||
__void__pushReferenceViewPoint__C5_osg_Vec3_R1,
|
||||
"",
|
||||
"");
|
||||
I_Method0(void, popReferenceViewPoint,
|
||||
Properties::NON_VIRTUAL,
|
||||
__void__popReferenceViewPoint,
|
||||
"",
|
||||
"");
|
||||
I_Method0(const osg::Vec3 &, getEyeLocal,
|
||||
Properties::NON_VIRTUAL,
|
||||
__C5_osg_Vec3_R1__getEyeLocal,
|
||||
"",
|
||||
"");
|
||||
I_Method0(const osg::Vec3 &, getViewPointLocal,
|
||||
Properties::NON_VIRTUAL,
|
||||
__C5_osg_Vec3_R1__getViewPointLocal,
|
||||
"",
|
||||
"");
|
||||
I_Method0(const osg::Vec3, getUpLocal,
|
||||
Properties::NON_VIRTUAL,
|
||||
__C5_osg_Vec3__getUpLocal,
|
||||
"",
|
||||
"");
|
||||
I_Method0(const osg::Vec3, getLookVectorLocal,
|
||||
Properties::NON_VIRTUAL,
|
||||
__C5_osg_Vec3__getLookVectorLocal,
|
||||
"",
|
||||
"");
|
||||
I_SimpleProperty(osg::CullStack::CullingStack &, ClipSpaceCullingStack,
|
||||
__CullingStack_R1__getClipSpaceCullingStack,
|
||||
0);
|
||||
I_SimpleProperty(osg::CullingSet &, CurrentCullingSet,
|
||||
__CullingSet_R1__getCurrentCullingSet,
|
||||
0);
|
||||
I_SimpleProperty(const osg::Vec3 &, EyeLocal,
|
||||
__C5_osg_Vec3_R1__getEyeLocal,
|
||||
0);
|
||||
I_SimpleProperty(float, FrustumVolume,
|
||||
__float__getFrustumVolume,
|
||||
0);
|
||||
I_SimpleProperty(const osg::Vec3, LookVectorLocal,
|
||||
__C5_osg_Vec3__getLookVectorLocal,
|
||||
0);
|
||||
I_SimpleProperty(const osg::RefMatrix *, MVPW,
|
||||
__C5_osg_RefMatrix_P1__getMVPW,
|
||||
0);
|
||||
I_SimpleProperty(osg::CullStack::CullingStack &, ModelViewCullingStack,
|
||||
__CullingStack_R1__getModelViewCullingStack,
|
||||
0);
|
||||
I_SimpleProperty(osg::RefMatrix *, ModelViewMatrix,
|
||||
__osg_RefMatrix_P1__getModelViewMatrix,
|
||||
0);
|
||||
I_SimpleProperty(const osg::ShadowVolumeOccluderList &, OccluderList,
|
||||
__C5_ShadowVolumeOccluderList_R1__getOccluderList,
|
||||
__void__setOccluderList__C5_ShadowVolumeOccluderList_R1);
|
||||
I_SimpleProperty(osg::CullStack::CullingStack &, ProjectionCullingStack,
|
||||
__CullingStack_R1__getProjectionCullingStack,
|
||||
0);
|
||||
I_SimpleProperty(osg::RefMatrix *, ProjectionMatrix,
|
||||
__osg_RefMatrix_P1__getProjectionMatrix,
|
||||
0);
|
||||
I_SimpleProperty(const osg::Vec3 &, ReferenceViewPoint,
|
||||
__C5_osg_Vec3_R1__getReferenceViewPoint,
|
||||
0);
|
||||
I_SimpleProperty(const osg::Vec3, UpLocal,
|
||||
__C5_osg_Vec3__getUpLocal,
|
||||
0);
|
||||
I_SimpleProperty(const osg::Vec3 &, ViewPointLocal,
|
||||
__C5_osg_Vec3_R1__getViewPointLocal,
|
||||
0);
|
||||
I_SimpleProperty(osg::Viewport *, Viewport,
|
||||
__osg_Viewport_P1__getViewport,
|
||||
0);
|
||||
I_SimpleProperty(osg::Matrix, WindowMatrix,
|
||||
__osg_Matrix__getWindowMatrix,
|
||||
0);
|
||||
END_REFLECTOR
|
||||
|
||||
STD_VECTOR_REFLECTOR(std::vector< osg::CullingSet >);
|
||||
|
||||
STD_VECTOR_REFLECTOR(std::vector< osg::ShadowVolumeOccluder >);
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
#include <osg/FrameStamp>
|
||||
#include <osg/Node>
|
||||
#include <osgDB/DatabasePager>
|
||||
#include <osgUtil/UpdateVisitor>
|
||||
#include <osgViewer/Scene>
|
||||
|
||||
// Must undefine IN and OUT macros defined in Windows headers
|
||||
@@ -73,6 +74,21 @@ BEGIN_OBJECT_REFLECTOR(osgViewer::Scene)
|
||||
__C5_osgDB_DatabasePager_P1__getDatabasePager,
|
||||
"",
|
||||
"");
|
||||
I_Method1(void, setUpdateVisitor, IN, osgUtil::UpdateVisitor *, uv,
|
||||
Properties::NON_VIRTUAL,
|
||||
__void__setUpdateVisitor__osgUtil_UpdateVisitor_P1,
|
||||
"",
|
||||
"");
|
||||
I_Method0(osgUtil::UpdateVisitor *, getUpdateVisitor,
|
||||
Properties::NON_VIRTUAL,
|
||||
__osgUtil_UpdateVisitor_P1__getUpdateVisitor,
|
||||
"",
|
||||
"");
|
||||
I_Method0(const osgUtil::UpdateVisitor *, getUpdateVisitor,
|
||||
Properties::NON_VIRTUAL,
|
||||
__C5_osgUtil_UpdateVisitor_P1__getUpdateVisitor,
|
||||
"",
|
||||
"");
|
||||
I_Method0(void, frameAdvance,
|
||||
Properties::VIRTUAL,
|
||||
__void__frameAdvance,
|
||||
@@ -97,5 +113,8 @@ BEGIN_OBJECT_REFLECTOR(osgViewer::Scene)
|
||||
I_SimpleProperty(osg::Node *, SceneData,
|
||||
__osg_Node_P1__getSceneData,
|
||||
__void__setSceneData__osg_Node_P1);
|
||||
I_SimpleProperty(osgUtil::UpdateVisitor *, UpdateVisitor,
|
||||
__osgUtil_UpdateVisitor_P1__getUpdateVisitor,
|
||||
__void__setUpdateVisitor__osgUtil_UpdateVisitor_P1);
|
||||
END_REFLECTOR
|
||||
|
||||
|
||||
Reference in New Issue
Block a user