Added initial classes for present3D refactor

This commit is contained in:
Robert Osfield 2013-08-21 19:54:03 +00:00
parent 4e3715d4bb
commit c678fed113
15 changed files with 346 additions and 0 deletions

View File

@ -0,0 +1,41 @@
/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield
*
* This library is open source and may be redistributed and/or modified under
* the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
* (at your option) any later version. The full license is in LICENSE file
* included with this distribution, and on the openscenegraph.org website.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* OpenSceneGraph Public License for more details.
*/
#ifndef OSGPRESENTATION_ELEMENT
#define OSGPRESENTATION_ELEMENT 1
#include <osgPresentation/Group>
namespace osgPresentation {
/** osgPresentation::Group
*/
class OSGPRESENTATION_EXPORT Element : public osgPresentation::Group
{
public :
Element() {}
/** Copy constructor using CopyOp to manage deep vs shallow copy. */
Element(const Element& element,const osg::CopyOp& copyop=osg::CopyOp::SHALLOW_COPY) : osgPresentation::Group(element,copyop) {}
META_Node(osgPresentation, Element);
protected :
virtual ~Element() {}
};
}
#endif

View File

@ -0,0 +1,59 @@
/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield
*
* This library is open source and may be redistributed and/or modified under
* the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
* (at your option) any later version. The full license is in LICENSE file
* included with this distribution, and on the openscenegraph.org website.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* OpenSceneGraph Public License for more details.
*/
#ifndef OSGPRESENTATION_GROUP
#define OSGPRESENTATION_GROUP 1
#include <osg/MatrixTransform>
#include <osgPresentation/Export>
namespace osgPresentation {
/** osgPresentation::Group
*/
class OSGPRESENTATION_EXPORT Group : public osg::MatrixTransform
{
public :
Group() {}
/** Copy constructor using CopyOp to manage deep vs shallow copy. */
Group(const Group& group,const osg::CopyOp& copyop=osg::CopyOp::SHALLOW_COPY) : osg::MatrixTransform(group,copyop) {}
META_Node(osgPresentation, Group);
/** Convinience method that casts the named UserObject to osg::TemplateValueObject<T> and gets the value.
* To use this template method you need to include the osg/ValueObject header.*/
template<typename T>
bool getProperty(const std::string& name, T& value) const
{
return getUserValue(name, value);
}
/** Convinience method that creates the osg::TemplateValueObject<T> to store the
* specified value and adds it as a named UserObject.
* To use this template method you need to include the osg/ValueObject header. */
template<typename T>
void setProperty(const std::string& name, const T& value)
{
return setUserValue(name, value);
}
protected :
virtual ~Group() {}
};
}
#endif

View File

@ -0,0 +1,41 @@
/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield
*
* This library is open source and may be redistributed and/or modified under
* the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
* (at your option) any later version. The full license is in LICENSE file
* included with this distribution, and on the openscenegraph.org website.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* OpenSceneGraph Public License for more details.
*/
#ifndef OSGPRESENTATION_LAYER
#define OSGPRESENTATION_LAYER 1
#include <osgPresentation/Group>
namespace osgPresentation {
/** osgPresentation::Group
*/
class OSGPRESENTATION_EXPORT Layer : public osgPresentation::Group
{
public :
Layer() {}
/** Copy constructor using CopyOp to manage deep vs shallow copy. */
Layer(const Layer& layer,const osg::CopyOp& copyop=osg::CopyOp::SHALLOW_COPY) : osgPresentation::Group(layer,copyop) {}
META_Node(osgPresentation, Layer);
protected :
virtual ~Layer() {}
};
}
#endif

View File

@ -0,0 +1,41 @@
/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield
*
* This library is open source and may be redistributed and/or modified under
* the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
* (at your option) any later version. The full license is in LICENSE file
* included with this distribution, and on the openscenegraph.org website.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* OpenSceneGraph Public License for more details.
*/
#ifndef OSGPRESENTATION_PRESENTATION
#define OSGPRESENTATION_PRESENTATION 1
#include <osgPresentation/Group>
namespace osgPresentation {
/** osgPresentation::Group
*/
class OSGPRESENTATION_EXPORT Presentation : public osgPresentation::Group
{
public :
Presentation() {}
/** Copy constructor using CopyOp to manage deep vs shallow copy. */
Presentation(const Presentation& presentation,const osg::CopyOp& copyop=osg::CopyOp::SHALLOW_COPY) : osgPresentation::Group(presentation,copyop) {}
META_Node(osgPresentation, Presentation);
protected :
virtual ~Presentation() {}
};
}
#endif

View File

@ -0,0 +1,41 @@
/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield
*
* This library is open source and may be redistributed and/or modified under
* the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
* (at your option) any later version. The full license is in LICENSE file
* included with this distribution, and on the openscenegraph.org website.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* OpenSceneGraph Public License for more details.
*/
#ifndef OSGPRESENTATION_SECTION
#define OSGPRESENTATION_SECTION 1
#include <osgPresentation/Group>
namespace osgPresentation {
/** osgPresentation::Group
*/
class OSGPRESENTATION_EXPORT Section : public osgPresentation::Group
{
public :
Section() {}
/** Copy constructor using CopyOp to manage deep vs shallow copy. */
Section(const Section& section,const osg::CopyOp& copyop=osg::CopyOp::SHALLOW_COPY) : osgPresentation::Group(section,copyop) {}
META_Node(osgPresentation, Section);
protected :
virtual ~Section() {}
};
}
#endif

View File

@ -0,0 +1,41 @@
/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield
*
* This library is open source and may be redistributed and/or modified under
* the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
* (at your option) any later version. The full license is in LICENSE file
* included with this distribution, and on the openscenegraph.org website.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* OpenSceneGraph Public License for more details.
*/
#ifndef OSGPRESENTATION_SLIDE
#define OSGPRESENTATION_SLIDE 1
#include <osgPresentation/Group>
namespace osgPresentation {
/** osgPresentation::Group
*/
class OSGPRESENTATION_EXPORT Slide : public osgPresentation::Group
{
public :
Slide() {}
/** Copy constructor using CopyOp to manage deep vs shallow copy. */
Slide(const Slide& slide,const osg::CopyOp& copyop=osg::CopyOp::SHALLOW_COPY) : osgPresentation::Group(slide,copyop) {}
META_Node(osgPresentation, Slide);
protected :
virtual ~Slide() {}
};
}
#endif

View File

@ -10,6 +10,13 @@ SET(HEADER_PATH ${OpenSceneGraph_SOURCE_DIR}/include/${LIB_NAME})
SET(TARGET_H
${HEADER_PATH}/Export
${HEADER_PATH}/Cursor
${HEADER_PATH}/Presentation
${HEADER_PATH}/Section
${HEADER_PATH}/Slide
${HEADER_PATH}/Layer
${HEADER_PATH}/Element
${HEADER_PATH}/Group
${HEADER_PATH}/deprecated/AnimationMaterial
${HEADER_PATH}/deprecated/CompileSlideCallback
${HEADER_PATH}/deprecated/PickEventHandler
@ -23,6 +30,7 @@ SET(TARGET_H
# FIXME: For OS X, need flag for Framework or dylib
SET(TARGET_SRC
Cursor.cpp
deprecated/AnimationMaterial.cpp
deprecated/CompileSlideCallback.cpp
deprecated/PickEventHandler.cpp

View File

@ -48,4 +48,5 @@ ADD_SUBDIRECTORY(osgGA)
ADD_SUBDIRECTORY(osgTerrain)
ADD_SUBDIRECTORY(osgText)
ADD_SUBDIRECTORY(osgVolume)
ADD_SUBDIRECTORY(osgPresentation)
ADD_SUBDIRECTORY(osgViewer)

View File

@ -0,0 +1,7 @@
FILE(GLOB TARGET_SRC *.cpp)
FILE(GLOB TARGET_H *.h)
SET(TARGET_ADDED_LIBRARIES osgPresentation )
#### end var setup ###
SETUP_PLUGIN(osgpresentation)

View File

@ -0,0 +1,11 @@
#include <osgPresentation/Element>
#include <osgDB/ObjectWrapper>
#include <osgDB/InputStream>
#include <osgDB/OutputStream>
REGISTER_OBJECT_WRAPPER( Element,
new osgPresentation::Element,
osgPresentation::Element,
"osg::Object osg::Node osg::Group osg::Transform osg::MatrixTransform osgPresentation::Group osgPresentation::Element" )
{
}

View File

@ -0,0 +1,11 @@
#include <osgPresentation/Group>
#include <osgDB/ObjectWrapper>
#include <osgDB/InputStream>
#include <osgDB/OutputStream>
REGISTER_OBJECT_WRAPPER( Group,
new osgPresentation::Group,
osgPresentation::Group,
"osg::Object osg::Node osg::Group osg::Transform osg::MatrixTransform osgPresentation::Group" )
{
}

View File

@ -0,0 +1,11 @@
#include <osgPresentation/Layer>
#include <osgDB/ObjectWrapper>
#include <osgDB/InputStream>
#include <osgDB/OutputStream>
REGISTER_OBJECT_WRAPPER( Layer,
new osgPresentation::Layer,
osgPresentation::Layer,
"osg::Object osg::Node osg::Group osg::Transform osg::MatrixTransform osgPresentation::Group osgPresentation::Layer" )
{
}

View File

@ -0,0 +1,11 @@
#include <osgPresentation/Presentation>
#include <osgDB/ObjectWrapper>
#include <osgDB/InputStream>
#include <osgDB/OutputStream>
REGISTER_OBJECT_WRAPPER( Presentation,
new osgPresentation::Presentation,
osgPresentation::Presentation,
"osg::Object osg::Node osg::Group osg::Transform osg::MatrixTransform osgPresentation::Group osgPresentation::Presentation" )
{
}

View File

@ -0,0 +1,11 @@
#include <osgPresentation/Section>
#include <osgDB/ObjectWrapper>
#include <osgDB/InputStream>
#include <osgDB/OutputStream>
REGISTER_OBJECT_WRAPPER( Section,
new osgPresentation::Section,
osgPresentation::Section,
"osg::Object osg::Node osg::Group osg::Transform osg::MatrixTransform osgPresentation::Group osgPresentation::Section" )
{
}

View File

@ -0,0 +1,11 @@
#include <osgPresentation/Slide>
#include <osgDB/ObjectWrapper>
#include <osgDB/InputStream>
#include <osgDB/OutputStream>
REGISTER_OBJECT_WRAPPER( Slide,
new osgPresentation::Slide,
osgPresentation::Slide,
"osg::Object osg::Node osg::Group osg::Transform osg::MatrixTransform osgPresentation::Group osgPresentation::Slide" )
{
}