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 <hermanva...@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@lists.openscenegraph.org > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > -- Chris 'Xenon' Hanson, omo sanza lettere. xe...@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]
_______________________________________________ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org