BsComponent.cpp 854 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #include "BsComponent.h"
  2. #include "BsSceneObject.h"
  3. #include "BsComponentRTTI.h"
  4. namespace BansheeEngine
  5. {
  6. Component::Component(const HSceneObject& parent)
  7. :mParent(parent)
  8. {
  9. setName("Component");
  10. }
  11. Component::~Component()
  12. {
  13. }
  14. bool Component::typeEquals(const Component& other)
  15. {
  16. return getRTTI()->getRTTIId() == other.getRTTI()->getRTTIId();
  17. }
  18. void Component::destroy(bool immediate)
  19. {
  20. SO()->destroyComponent(this, immediate);
  21. }
  22. void Component::destroyInternal(GameObjectHandleBase& handle, bool immediate)
  23. {
  24. if (immediate)
  25. GameObjectManager::instance().unregisterObject(handle);
  26. else
  27. GameObjectManager::instance().queueForDestroy(handle);
  28. }
  29. RTTITypeBase* Component::getRTTIStatic()
  30. {
  31. return ComponentRTTI::instance();
  32. }
  33. RTTITypeBase* Component::getRTTI() const
  34. {
  35. return Component::getRTTIStatic();
  36. }
  37. }