sculpto
native_script_component.h
Go to the documentation of this file.
1/*!****************************************************************//*!*
2 * \file native_script_component.h
3 * \brief Application scene system object native script component class implementation module.
4 *
5 * \author Sabitov Kirill
6 * \date 03 July 2022
7 *********************************************************************/
8
9#pragma once
10
11namespace scl
12{
14 class scene_object_behaviour;
15
18 {
22 bool IsActive { true };
24 std::string Name {};
25
26 scene_object_behaviour *(*Instanciate)();
27 void (*Delete)(native_script_component *NativeScript);
28
29 /*!*
30 * Bind native script component (instanciate object behaviour).
31 *
32 * \param None.
33 * \return None.
34 */
35 template <typename Tbehaviour>
36 void Bind()
37 {
38 Name = typeid(Tbehaviour).name();
39
40 Instanciate = []() { return (scene_object_behaviour *)(new Tbehaviour()); };
41 Delete = [](native_script_component *NativeScript) { delete NativeScript->ObjectBehaviour; NativeScript->ObjectBehaviour = nullptr; };
42 }
43 };
44}
Definition: base.h:33
scene_object_behaviour *(* Instanciate)()
scene_object_behaviour * ObjectBehaviour
void(* Delete)(native_script_component *NativeScript)