Loading...
Searching...
No Matches
5#ifndef CSENGINE_APP_COMPONENTDEF_H
6#define CSENGINE_APP_COMPONENTDEF_H
8#define Transform static_cast<TransformInterface*>(gameObject->GetTransform())
9#define COMPONENT_DECLARE(CLASSNAME) \
11auto GetComponent() override
13#define COMPONENT_DEFINE_CONSTRUCTOR(CLASSNAME) \
14static const char* GetClassStaticType() { return #CLASSNAME; } \
15explicit CLASSNAME(CSE::SGameObject* l_gameObject)
17#define COMPONENT_CONSTRUCTOR(CLASSNAME) \
18namespace __REFELCTION_DUMP__ { namespace CLASSNAME { \
19unsigned char* __CSE_REFLECTION_DUMP__ = \
20CSE::ReflectionMgr::DefineWrapper::SetDefine(#CLASSNAME, []() { return new CSE::CLASSNAME(nullptr); });}} \
21CSE::CLASSNAME::CLASSNAME(CSE::SGameObject* l_gameObject) : CSE::SComponent(#CLASSNAME, l_gameObject)
23#define COMPONENT_DERIVED_CLASS_TYPE(CLASSNAME) \
24SetClassType(#CLASSNAME)
26#define FIND_OBJ_REFERENCE(obj, src) \
28 auto targetObject = lists_obj.find(src->obj); \
29 obj = (targetObject != lists_obj.end()) ? targetObject->second : src->obj; \
31#define FIND_COMP_REFERENCE(comp, src, componentName) \
33 auto targetObject = lists_comp.find(src->comp); \
34 comp = (targetObject != lists_comp.end()) ? static_cast<componentName*>(targetObject->second) : src->comp; \
37#define INIT_COMPONENT_CLONE(className, cloneName) \
38className* cloneName = nullptr; \
39if (object == nullptr) { \
40cloneName = new className(object); \
42cloneName = object->CreateComponent<className>(); \