[osg-users] problems with osg-3.4.0 port to osg-3.6.0

Chris Hanson xenon at alphapixel.com
Thu Sep 13 10:57:00 PDT 2018


Did you ask Ben himself?

He's moving to Hawaii just now, but might be able to comment. I can ping
him if you don't get an answer here.

On Thu, Sep 13, 2018 at 7:48 AM Herman Varma <hermanvarma at eastlink.ca>
wrote:

> Hello I am having trouble porting  Ben Discoe’s VTP software from
> openSceneGraph-3.4.0 to osg-3.6.2
>
> The problem lies in replacing the META_object with a macro in
> shadowTechnique.h as depicted below.
>
> Can someone point out where the problem is.
>
> /** CSimpleInterimShadowTechnique provides an implementation of a depth
> map shadow tuned to the needs of VTP.*/
>
> class CSimpleInterimShadowTechnique : public osgShadow::ShadowTechnique
> {
> public:
>
> //  working **********************  in opemSceneGraph-3.4.0
> //     CSimpleInterimShadowTechnique();
> //     CSimpleInterimShadowTechnique(const
> //     CSimpleInterimShadowTechnique& es, const osg::CopyOp&
> //      copyop=osg::CopyOp::SHALLOW_COPY);
> //     META_Object(osgShadow, CSimpleInterimShadowTechnique);
> //***********************************************************
>
> // not working *********************in opemSceneGraph-3.6.2
>        CSimpleInterimShadowTechnique();
>        CSimpleInterimShadowTechnique(const CSimpleInterimShadowTechnique&
> es, const osg::CopyOp& copyop = osg::CopyOp::SHALLOW_COPY);
>
>        virtual bool isSameKindAs(const osg::Object* obj) const { return
> dynamic_cast<const CSimpleInterimShadowTechnique*>(obj) != NULL; } \
>        virtual const char* libraryName() const { return "osgShadow"; }\
>        virtual const char* className() const { return
> "CSimpleInterimShadowTechnique"; }
>
>
> //**************************************************************
>
>
> In the new implementation I am getting a C2259 error
>
> 2>c:\vtp_vsc\terrainsdk\vtlib\vtosg\nodeosg.cpp(1026): error C2259:
> 'CSimpleInterimShadowTechnique': cannot instantiate abstract class
>
> 2>c:\vtp_vsc\terrainsdk\vtlib\vtosg\nodeosg.cpp(1026): note: due to
> following members:
>
> 2>c:\vtp_vsc\terrainsdk\vtlib\vtosg\nodeosg.cpp(1026): note: 'osg::Object
> *osg::Object::cloneType(void) const': is abstract
>
> 2>c:\apis\openscenegraph-3.6.2\build\include\osg\object(80): note: see
> declaration of 'osg::Object::cloneType'
>
> 2>c:\vtp_vsc\terrainsdk\vtlib\vtosg\nodeosg.cpp(1026): note: 'osg::Object
> *osg::Object::clone(const osg::CopyOp &) const': is abstract
>
> 2>c:\apis\openscenegraph-3.6.2\build\include\osg\object(84): note: see
> declaration of 'osg::Object::clone'
>
> 2>c:\vtp_vsc\terrainsdk\vtlib\vtosg\nodeosg.cpp(1026): note: 'void
> osgShadow::ShadowTechnique::resizeGLObjectBuffers(unsigned int)': is
> abstract
>
> 2>c:\apis\openscenegraph-3.6.2\build\include\osgshadow\shadowtechnique(66):
> note: see declaration of 'osgShadow::ShadowTechnique::resizeGLObjectBuffers'
> 2>c:\vtp_vsc\terrainsdk\vtlib\vtosg\nodeosg.cpp(1026): note: 'void
> osgShadow::ShadowTechnique::releaseGLObjects(osg::State *) const': is
> abstract
> 2>c:\apis\openscenegraph-3.6.2\build\include\osgshadow\shadowtechnique(71):
> note: see declaration of 'osgShadow::ShadowTechnique::releaseGLObjects'
>
> The  error manifests is in the vtShadow section of nodeOSG.cpp
>
> //////////////////////////////////////////////////////////////////////
> // vtShadow
> //
>
> vtShadow::vtShadow(const int ShadowTextureUnit, int LightNumber) :
>        m_ShadowTextureUnit(ShadowTextureUnit), m_LightNumber(LightNumber)
> {
>        setReceivesShadowTraversalMask(ReceivesShadowTraversalMask);
>        setCastsShadowTraversalMask(CastsShadowTraversalMask);
>
> #if VTLISPSM
>        osg::ref_ptr<CLightSpacePerspectiveShadowTechnique>
> pShadowTechnique = new CLightSpacePerspectiveShadowTechnique;
>        // No need to set the BaseTextureUnit as the default of zero is OK
> for us
>        // But the ShadowTextureUnit might be different (default 1)
>        pShadowTechnique->setShadowTextureUnit(m_ShadowTextureUnit);
>        pShadowTechnique->setLightNumber(m_LightNumber);
> #else
>
> //errorC2259 cannot instantiate abstract class in openSceneGraph-3.6.2
> //working in osg-3.4.0
>
>   osg::ref_ptr<CSimpleInterimShadowTechnique> pShadowTechnique = new
>
> #endif
>
> #if !VTLISPSM
> #if VTDEBUGSHADOWS
>        // add some instrumentation
>        pShadowTechnique->m_pParent = this;
> #endif
>
>        pShadowTechnique->SetLightNumber(LightNumber);
>        pShadowTechnique->SetShadowTextureUnit(m_ShadowTextureUnit);
>        pShadowTechnique->SetShadowSphereRadius(50.0);
> #endif
>        setShadowTechnique(pShadowTechnique.get());
>
>        SetOsgNode(this);
> }
>
> Help would be appreciated
>
>
> Thank you!
>
> Cheers,
>
> Herman Varma
> Head of Cartographic Research
> Bedford Institute of Oceanography
>
> ------------------
> Read this topic online here:
> http://forum.openscenegraph.org/viewtopic.php?p=74733#74733
>
>
>
>
>
> _______________________________________________
> osg-users mailing list
> osg-users at lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>


-- 
Chris 'Xenon' Hanson, omo sanza lettere. Xenon at AlphaPixel.com
http://www.alphapixel.com/
Training • Consulting • Contracting
3D • Scene Graphs (Open Scene Graph/OSG) • OpenGL 2 • OpenGL 3 • OpenGL 4 •
GLSL • OpenGL ES 1 • OpenGL ES 2 • OpenCL
Legal/IP • Forensics • Imaging • UAVs • GIS • GPS •
osgEarth • Terrain • Telemetry • Cryptography • LIDAR • Embedded • Mobile •
iPhone/iPad/iOS • Android
@alphapixel <https://twitter.com/alphapixel> facebook.com/alphapixel (775)
623-PIXL [7495]
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/attachments/20180913/ec89c50a/attachment.html>


More information about the osg-users mailing list