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 implementing the macro to replace META_object in shadowTechnique.h as depicted below. . Can someone point out where my 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 openSceneGraph-3.4.0 // CSimpleInterimShadowTechnique(); // CSimpleInterimShadowTechnique(const // CSimpleInterimShadowTechnique& es, const osg::CopyOp& // copyop=osg::CopyOp::SHALLOW_COPY); // META_Object(osgShadow, CSimpleInterimShadowTechnique); //*********************************************************** // Macro not working *****************in openSceneGraph-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 area where the error manifests is in this 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 //statement working in osg-3.4.0 osg::ref_ptr<CSimpleInterimShadowTechnique> pShadowTechnique = new CSimpleInterimShadowTechnique;//*****************************Error here #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 Cheers, Herman ------------------ Read this topic online here: http://forum.openscenegraph.org/viewtopic.php?p=74726#74726 _______________________________________________ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org