|
Graphite Version 3
An experimental 3D geometry processing program
|
A MetaClass that can be created in Lua. More...
#include <OGF/gom/reflection/dynamic_object.h>
Public Member Functions | |
| DynamicMetaClass (const std::string &class_name, const std::string &super_class_name, bool is_abstract=false) | |
| Constructs a new DynamicMetaClass. | |
| ~DynamicMetaClass () override | |
| DynamicMetaClass destructor. | |
| DynamicMetaSlot * | add_slot (const std::string &name, Callable *action, const std::string &return_type="void") |
| Creates a new slot. | |
Public Member Functions inherited from OGF::MetaClass | |
| MetaClass (const std::string &class_name, MetaClass *super_class=nullptr, bool is_abstract=false) | |
| Constructs a new MetaClass. | |
| MetaClass (const std::string &class_name, const std::string &super_class_name, bool is_abstract=false) | |
| Constructs a new MetaClass. | |
| ~MetaClass () override | |
| MetaClass destructor. | |
| void | pre_delete () override |
| Removes all variables that use the meta type system before deleting. | |
| const std::string & | super_class_name () const |
| Gets the name of the super class. | |
| bool | is_abstract () const |
| Tests if the class is abstract. | |
| Object * | create (const ArgList &args) |
| Creates an object of this class. | |
| size_t | nb_members (bool super=true) const |
| Gets the number of class members. | |
| MetaMember * | ith_member (index_t i, bool super=true) const |
| Gets a MetaMember by index. | |
| MetaMember * | find_member (const std::string &member_name, bool super=true) const |
| Finds a MetaMember by name. | |
| size_t | nb_signals (bool super=true) const |
| Gets the number of signals. | |
| MetaSignal * | ith_signal (index_t i, bool super=true) const |
| Gets a MetaSignal by index. | |
| size_t | nb_slots (bool super=true) const |
| Gets the number of slots. | |
| MetaSlot * | ith_slot (index_t i, bool super=true) const |
| Gets a MetaSlot by index. | |
| size_t | nb_properties (bool super=true) const |
| Gets the number of properties. | |
| MetaProperty * | ith_property (index_t i, bool super=true) const |
| Gets a MetaProperty by index. | |
| size_t | nb_constructors () const |
| Gets the number of constructors. | |
| MetaConstructor * | ith_constructor (index_t i) const |
| Gets a MetaConstructor by index. | |
| MetaMethod * | find_method (const std::string &method_name, bool super=true) const |
| Finds a MetaMethod by name. | |
| MetaSlot * | find_slot (const std::string &slot_name, bool super=true) const |
| Finds a MetaSlot by name. | |
| MetaSignal * | find_signal (const std::string &signal_name, bool super=true) const |
| Finds a MetaSignal by name. | |
| MetaProperty * | find_property (const std::string &property_name, bool super=true) const |
| Finds a MetaProperty by name. | |
| virtual MetaClass * | create_subclass (const std::string &name, bool is_abstract=false) |
| Creates a new subclass dynamically. | |
| virtual bool | is_subclass_of (const MetaClass *other) const |
| Tests whether this MetaClass is a subclass of another MetaClass. | |
| void | set_abstract (bool b) |
| Indicate that the class is abstract. | |
| void | add_member (MetaMember *member) |
| Adds a new MetaMember to this class. | |
| void | get_members (std::vector< MetaMember * > &result, bool super=true) const |
| Gets all the members. | |
| void | get_methods (std::vector< MetaMethod * > &result, bool super=true) const |
| Gets all the methods. | |
| void | get_signals (std::vector< MetaSignal * > &result, bool super=true) const |
| Gets all the signals. | |
| void | get_slots (std::vector< MetaSlot * > &result, bool super=true) const |
| Gets all the slots. | |
| void | get_properties (std::vector< MetaProperty * > &result, bool super=true) const |
| Gets all the properties. | |
| void | get_constructors (std::vector< MetaConstructor * > &result) const |
| Gets all the constructors. | |
| bool | is_subtype_of (const MetaType *other) const override |
| void | get_used_types (std::set< std::string > &used_types, bool super=true) const |
| Gets all the types used by this class. | |
| MetaConstructor * | best_constructor (const ArgList &args) |
| Gets the best constructors for the specified arguments. | |
| Factory * | factory () const |
| Gets the factory. | |
| void | set_factory (Factory *f) |
| Sets the factory. | |
| void | search (const std::string &needle, const std::string &path="") override |
| Displays the names of all objects that contain a substring. | |
| std::string | get_doc () const override |
| Gets the documentation. | |
Public Member Functions inherited from OGF::MetaType | |
| MetaType (const std::string &name) | |
| MetaType constructor. | |
| ~MetaType () override | |
| MetaType destructor. | |
| const std::string & | name () const |
| Gets the C++ name of the type. | |
| void | set_typeid_name (const std::string &typeid_name) |
| Sets the typeid name. | |
| const std::string & | typeid_name () const |
| Gets the typeid name. | |
| LifeCycle * | life_cycle () const |
| Gets the LifeCycle associated with the type. | |
| void | set_life_cycle (LifeCycle *life_cycle) |
| Sets the LifeCycle associated with the type. | |
| Serializer * | serializer () const |
| Gets the serializer associated with the type. | |
| void | set_serializer (Serializer *ser) |
| Sets the serializer associated with the type. | |
Public Member Functions inherited from OGF::MetaInformation | |
| void | search (const std::string &needle, const std::string &path="") override |
| Displays the names of all objects that contain a substring. | |
| bool | has_custom_attribute (const std::string &name) const |
| Tests whether a given custom attribute exists. | |
| std::string | ith_custom_attribute_name (index_t i) const |
| Gets the name of a custom attribute by index. | |
| std::string | ith_custom_attribute_value (index_t i) const |
| Gets the value of a custom attribute by index. | |
| std::string | custom_attribute_value (const std::string &name) const |
| Gets the value of a new custom attribute. | |
| void | create_custom_attribute (const std::string &name, const std::string &value) |
| Creates a new custom attribute. | |
| void | set_custom_attribute (const std::string &name, const std::string &value) |
| Sets the value of a new custom attribute. | |
Public Member Functions inherited from OGF::Object | |
| Object (bool transient=false) | |
| Object constructor. | |
| ~Object () override | |
| Object destructor. | |
| virtual MetaClass * | meta_class () const |
| Gets the meta class. | |
| virtual void | set_meta_class (MetaClass *mclass) |
| Sets the meta class. | |
| unsigned int | id () const |
| Gets the identifier of this object. | |
| std::string | string_id () const |
| Gets the unique string identifier. | |
| bool | has_method (const std::string &method_name) const |
| Tests whether a method is defined. | |
| virtual bool | invoke_method (const std::string &method_name, const ArgList &args, Any &ret_val) |
| Invokes a method by method name and argument list, and gets the return value. | |
| bool | invoke_method (const std::string &method_name, const ArgList &args) |
| Invokes a method by method name and argument list. | |
| bool | invoke_method (const std::string &method_name) |
| Invokes a method by method name. | |
| bool | has_property (const std::string &prop_name) const |
| Tests whether a property is defined. | |
| virtual bool | get_property (const std::string &prop_name, std::string &prop_value) const |
| Gets a property. | |
| virtual Connection * | connect_signal_to_slot (const std::string &signal_name, Object *to, const std::string &slot_name) |
| Connects a signal with a slot of another object. | |
| virtual void | add_connection (Connection *connection) |
| Adds a connection to this object. | |
| virtual void | remove_connection (Connection *connection) |
| Removes a connection to this object. | |
| virtual void | get_element (index_t i, Any &value) const |
| Gets an element by index. | |
| virtual void | set_element (index_t i, const Any &value) |
| Sets an element by index. | |
| void | get_element (index_t item, index_t component, Any &value) const |
| Gets an element by item and component. | |
| void | set_element (index_t item, index_t component, const Any &value) |
| Sets an element by item and component. | |
| virtual index_t | get_dimension () const |
| Gets the number of elements per item. | |
| bool | get_signals_enabled () const |
| Tests wheter signals are enabled. | |
| void | set_signals_enabled (bool value) |
| Enables or disables signals. | |
| bool | get_slots_enabled () const |
| Tests wheter slots are enabled. | |
| void | set_slots_enabled (bool value) |
| Enables or disables slots. | |
| MetaClass * | get_meta_class () const |
| Gets the meta class. | |
| std::string | get_string_id () const |
| Gets the unique string identifier. | |
| virtual Sign | compare (const Object *other) const |
| Compares this object with another one. | |
| virtual bool | is_a (const MetaType *type) const |
| Tests whether this object inherits a given type. | |
| void | disconnect () |
| Removes all connections from signals of this objects. | |
| void | enable_signals () |
| Enables signals. | |
| void | disable_signals () |
| Disables signals. | |
| void | enable_slots () |
| Enables slots. | |
| void | disable_slots () |
| Disables slots. | |
| void | set_properties (const ArgList &args) |
| Sets several properties in a single call. | |
| virtual bool | set_property (const std::string &name, const std::string &value) |
| Sets an individual property. | |
| void | help () const |
| Displays some help about this object. | |
| virtual bool | set_property (const std::string &name, const Any &value) |
| Sets an individual property. | |
| virtual bool | get_property (const std::string &prop_name, Any &prop_value) const |
| Gets a property. | |
Public Member Functions inherited from GEO::Counted | |
| void | ref () const |
| Increments the reference count. | |
| void | unref () const |
| Decrements the reference count. | |
| bool | is_shared () const |
| Check if the object is shared. | |
| int | nb_refs () const |
| Gets the number of references that point to this object. | |
Public Member Functions inherited from OGF::CustomAttributes | |
| size_t | nb_custom_attributes () const |
| Gets the number of custom attributes. | |
| std::string | ith_custom_attribute_name (index_t i) const |
| Gets the name of a custom attribute by index. | |
| std::string | ith_custom_attribute_value (index_t i) const |
| Gets the value of a custom attribute by index. | |
| bool | has_custom_attribute (const std::string &name) const |
| Tests whether a given custom attribute exists. | |
| void | create_custom_attribute (const std::string &name, const std::string &value) |
| Creates a new custom attribute. | |
| void | set_custom_attribute (const std::string &name, const std::string &value) |
| Sets the value of a new custom attribute. | |
| std::string | custom_attribute_value (const std::string &name) const |
| Gets the value of a new custom attribute. | |
| void | clear_custom_attributes () |
| Clears the custom attributes. | |
Public Attributes | |
| : MetaConstructor* add_constructor(Callable* action=nullptr) | |
Public Attributes inherited from OGF::MetaClass | |
| : MetaClass* super_class() const | |
Public Attributes inherited from OGF::MetaType | |
| : virtual bool is_subtype_of(const MetaType* other) const | |
| : const std::string& get_name() const { return name() | |
Public Attributes inherited from OGF::MetaInformation | |
| : size_t nb_custom_attributes() const | |
Public Attributes inherited from OGF::Object | |
| : virtual index_t get_nb_elements() const | |
| : bool equals(const Object* other) const | |
Additional Inherited Members | |
Static Public Member Functions inherited from OGF::Object | |
| static Object * | id_to_object (unsigned int id) |
| Gets an object from a unique object id. | |
Static Public Member Functions inherited from GEO::Counted | |
| static void | ref (const Counted *counted) |
| Increments the reference count. | |
| static void | unref (const Counted *counted) |
| Decrements the reference count. | |
Protected Member Functions inherited from OGF::MetaClass | |
| std::string | new_constructor_name () const |
| Generates a dummy name for a constructor. | |
| void | append_members (std::vector< MetaMember * > &result, bool super=true) const |
| Gets all the members and appends them to a vector. | |
| void | append_methods (std::vector< MetaMethod * > &result, bool super=true) const |
| Gets all the methods and appends them to a vector. | |
| void | append_signals (std::vector< MetaSignal * > &result, bool super=true) const |
| Gets all the signals and appends them to a vector. | |
| void | append_slots (std::vector< MetaSlot * > &result, bool super=true) const |
| Gets all the slots and appends them to a vector. | |
| void | append_properties (std::vector< MetaProperty * > &result, bool super=true) const |
| Gets all the properties. | |
Protected Member Functions inherited from OGF::Object | |
| virtual bool | emit_signal (const std::string &signal_name, const ArgList &args, bool called_from_slot=false) |
| Emits a signal and calls the slots it is connected to. | |
Protected Member Functions inherited from GEO::Counted | |
| Counted () | |
| Creates a reference counted object. | |
| virtual | ~Counted () |
| Destroys a reference counted object. | |
A MetaClass that can be created in Lua.
It is possible to create new GOM classes and objects in Lua.
Definition at line 174 of file dynamic_object.h.
|
explicit |
Constructs a new DynamicMetaClass.
| [in] | class_name | the C++ class name |
| [in] | super_class_name | the C++ name of the super class |
| [in] | is_abstract | indicates whether the class is abstract (e.g. with pure virtual methods) or not. Abstract classes cannot be constructed. |
| DynamicMetaSlot * OGF::DynamicMetaClass::add_slot | ( | const std::string & | name, |
| Callable * | action, | ||
| const std::string & | return_type = "void" |
||
| ) |
Creates a new slot.
| [in] | name | the name of the slot |
| [in] | action | the function to be called when the slot is invoked |
| [in] | return_type | an optional string with the return type |
one can create the arguments by calling DynamicMetaSlot::add_arg() on the returned DynamicMetaSlot.
| OGF::DynamicMetaClass::__pad0__ |
Definition at line 193 of file dynamic_object.h.