00001 00002 // CreationFunction.h // 00004 00005 #ifndef CREATIONFUNCTION_H 00006 #define CREATIONFUNCTION_H 00007 00008 #include "X3DFunction.h" 00009 #include "X3DTypes.h" 00010 00011 namespace X3DTK { 00012 00014 00015 class CreationFunction : public X3DFunction 00016 { 00017 public: 00019 CreationFunction(const ptrToCreationFunction f, const X3DComponentCreator *component); 00021 ~CreationFunction(); 00022 00024 inline X3D::SFNode create() const {return (component_->*ptr2function_)();}; 00025 00026 inline const X3DComponentCreator *getComponent() const {return component_;}; 00027 00028 private: 00030 const ptrToCreationFunction ptr2function_; 00031 const X3DComponentCreator *component_; 00032 }; 00033 00034 } 00035 00036 #endif