#if !defined ( INCLUDED_SCENELIB_H )
#define INCLUDED_SCENELIB_H
+#include "globaldefs.h"
#include "iscenegraph.h"
#include "iselection.h"
void initialise(){
m_typeId = GlobalSceneGraph().getNodeTypeId( Name() );
}
-typedef MemberCaller<NodeType<Type>, &NodeType<Type>::initialise> InitialiseCaller;
+typedef MemberCaller<NodeType<Type>, void(), &NodeType<Type>::initialise> InitialiseCaller;
TypeId getTypeId(){
-#if defined( _DEBUG )
+#if GDEF_DEBUG
ASSERT_MESSAGE( m_typeId != NODETYPEID_NONE, "node-type " << makeQuoted( Name() ) << " used before being initialised" );
#endif
return m_typeId;
{
public:
virtual void release() = 0;
+virtual ~Symbiot(){
+}
};
private:
bool excluded(){
return ( m_state & eExcluded ) != 0;
}
+bool operator<( const scene::Node& other ){
+ return this < &other;
+}
+bool operator==( const scene::Node& other ){
+ return this == &other;
+}
+bool operator!=( const scene::Node& other ){
+ return this != &other;
+}
};
+
class NullNode : public Node::Symbiot
{
NodeTypeCastTable m_casts;
return NodeTypeCast<TransformNode>::cast( node );
}
-inline bool operator<( scene::Node& node, scene::Node& other ){
- return &node < &other;
-}
-inline bool operator==( scene::Node& node, scene::Node& other ){
- return &node == &other;
-}
-inline bool operator!=( scene::Node& node, scene::Node& other ){
- return !::operator==( node, other );
-}
-
inline scene::Node& NewNullNode(){
return ( new scene::NullNode )->node();
void initialise(){
m_typeId = GlobalSceneGraph().getInstanceTypeId( Name() );
}
-typedef MemberCaller<InstanceType<Type>, &InstanceType<Type>::initialise> InitialiseCaller;
+typedef MemberCaller<InstanceType<Type>, void(), &InstanceType<Type>::initialise> InitialiseCaller;
TypeId getTypeId(){
-#if defined( _DEBUG )
+#if GDEF_DEBUG
ASSERT_MESSAGE( m_typeId != INSTANCETYPEID_NONE, "instance-type " << makeQuoted( Name() ) << " used before being initialised" );
#endif
return m_typeId;
mutable bool m_childSelectedChanged;
mutable bool m_parentSelected;
mutable bool m_parentSelectedChanged;
-Callback m_childSelectedChangedCallback;
-Callback m_transformChangedCallback;
+Callback<void()> m_childSelectedChangedCallback;
+Callback<void()> m_transformChangedCallback;
void evaluateTransform() const {
GlobalSceneGraph().traverse_subgraph( TransformChangedWalker(), m_path );
boundsChanged();
}
-void setTransformChangedCallback( const Callback& callback ){
+void setTransformChangedCallback( const Callback<void()>& callback ){
m_transformChangedCallback = callback;
}
return m_childSelected;
}
-void setChildSelectedChangedCallback( const Callback& callback ){
+void setChildSelectedChangedCallback( const Callback<void()>& callback ){
m_childSelectedChangedCallback = callback;
}
void selectedChanged(){
class SimpleCounter : public Counter
{
-Callback m_countChanged;
+Callback<void()> m_countChanged;
std::size_t m_count;
public:
-void setCountChangedCallback( const Callback& countChanged ){
+void setCountChangedCallback( const Callback<void()>& countChanged ){
m_countChanged = countChanged;
}
void increment(){