2
0
Marko Pintera 11 жил өмнө
parent
commit
acc865dc80

+ 1 - 1
BansheeEditor/Include/BsGUISceneTreeView.h

@@ -15,7 +15,7 @@ namespace BansheeEditor
 			{ }
 
 			CM::HSceneObject mSceneObject;
-			CM::UINT32 mId;
+			CM::UINT64 mId;
 		};
 
 		struct DraggedSceneObjects

+ 4 - 4
BansheeEditor/Source/BsGUISceneTreeView.cpp

@@ -69,7 +69,7 @@ namespace BansheeEditor
 			{
 				SceneTreeElement* currentChild = static_cast<SceneTreeElement*>(element->mChildren[i]);
 
-				UINT32 curId = currentSO->getChild(i)->getId();
+				UINT64 curId = currentSO->getChild(i)->getInstanceId();
 				if(curId != currentChild->mId)
 				{
 					completeMatch = false;
@@ -91,7 +91,7 @@ namespace BansheeEditor
 			for(UINT32 i = 0; i < currentSO->getNumChildren(); i++)
 			{
 				HSceneObject currentSOChild = currentSO->getChild(i);
-				UINT32 curId = currentSOChild->getId();
+				UINT64 curId = currentSOChild->getInstanceId();
 				bool found = false;
 				for(UINT32 j = 0; j < element->mChildren.size(); j++)
 				{
@@ -113,7 +113,7 @@ namespace BansheeEditor
 					SceneTreeElement* newChild = cm_new<SceneTreeElement>();
 					newChild->mParent = element;
 					newChild->mSceneObject = currentSOChild;
-					newChild->mId = currentSOChild->getId();
+					newChild->mId = currentSOChild->getInstanceId();
 					newChild->mName = currentSOChild->getName();
 					newChild->mSortedIdx = (UINT32)newChildren.size();
 					newChild->mIsVisible = element->mIsVisible && element->mIsExpanded;
@@ -180,7 +180,7 @@ namespace BansheeEditor
 	{
 		HSceneObject root = CM::gSceneManager().getRootNode();
 		mRootElement.mSceneObject = root;
-		mRootElement.mId = root->getId();
+		mRootElement.mId = root->getInstanceId();
 		mRootElement.mSortedIdx = 0;
 		mRootElement.mIsExpanded = true;
 

+ 2 - 0
BansheeEditor/Source/CmDebugCamera.cpp

@@ -20,6 +20,8 @@ namespace CamelotFramework
 	DebugCamera::DebugCamera(const HSceneObject& parent)
 		:Component(parent), mPitch(0.0f), mYaw(0.0f), mLastButtonState(false)
 	{
+		setName("DebugCamera");
+
 		mCamera = sceneObject()->getComponent<Camera>();
 		mCamera->setNearClipDistance(5);
 

+ 2 - 0
BansheeEngine/Source/BsCamera.cpp

@@ -70,6 +70,8 @@ namespace BansheeEngine
 		mPriority(0),
 		mLayers(0xFFFFFFFFFFFFFFFF)
     {
+		setName("Camera");
+
 		updateView();
 		updateFrustum();
 

+ 2 - 0
BansheeEngine/Source/BsGUIWidget.cpp

@@ -25,6 +25,8 @@ namespace BansheeEngine
 	GUIWidget::GUIWidget(const HSceneObject& parent, CM::Viewport* target)
 		:Component(parent), mSkin(nullptr), mWidgetIsDirty(false), mTarget(nullptr), mDepth(0)
 	{
+		setName("GUIWidget");
+
 		mLastFramePosition = SO()->getWorldPosition();
 		mLastFrameRotation = SO()->getWorldRotation();
 		mLastFrameScale = SO()->getWorldScale();

+ 2 - 0
BansheeEngine/Source/BsOverlay.cpp

@@ -8,6 +8,8 @@ namespace BansheeEngine
 	Overlay::Overlay(const HSceneObject& parent, CM::Viewport* target)
 		:Component(parent), mRenderTarget(nullptr), mDepth(0)
 	{
+		setName("Overlay");
+
 		if(mRenderTarget != nullptr)
 			OverlayManager::instance().detachOverlay(mRenderTarget, this);
 

+ 2 - 0
BansheeEngine/Source/BsRenderable.cpp

@@ -12,6 +12,8 @@ namespace BansheeEngine
 	Renderable::Renderable(const HSceneObject& parent)
 		:Component(parent), mLayer(1)
 	{
+		setName("Renderable");
+
 		mMaterials.resize(1);
 		mMatViewProjParam.resize(1);
 	}

+ 1 - 1
BansheeEngine/Source/BsUpdateCallback.cpp

@@ -7,7 +7,7 @@ namespace BansheeEngine
 	UpdateCallback::UpdateCallback(const HSceneObject& parent)
 		:Component(parent)
 	{
-
+		setName("UpdateCallback");
 	}
 
 	UpdateCallback::~UpdateCallback()

+ 5 - 0
CamelotCore/Include/CmGameObject.h

@@ -23,6 +23,9 @@ namespace CamelotFramework
 
 		UINT64 getInstanceId() const { return mInstanceData->mInstanceId; }
 
+		const String& getName() const { return mName; }
+		void setName(const String& name) { mName = name; }
+
 	private:
 		friend class GameObjectHandleBase;
 		friend class GameObjectManager;
@@ -30,6 +33,8 @@ namespace CamelotFramework
 		std::shared_ptr<GameObjectInstanceData> mInstanceData;
 
 	protected:
+		String mName;
+
 		void initialize(const std::shared_ptr<GameObject>& object, UINT64 instanceId);
 
 		/************************************************************************/

+ 4 - 0
CamelotCore/Include/CmGameObjectRTTI.h

@@ -11,6 +11,9 @@ namespace CamelotFramework
 	class CM_EXPORT GameObjectRTTI : public RTTIType<GameObject, IReflectable, GameObjectRTTI>
 	{
 	private:
+		String& getName(GameObject* obj) { return obj->mName; }
+		void setName(GameObject* obj, String& name) { obj->mName = name; }
+
 		UINT64& getInstanceID(GameObject* obj) { return obj->mInstanceData->mInstanceId; }
 		void setInstanceID(GameObject* obj, UINT64& instanceId) 
 		{  
@@ -30,6 +33,7 @@ namespace CamelotFramework
 		GameObjectRTTI()
 		{
 			addPlainField("mInstanceID", 0, &GameObjectRTTI::getInstanceID, &GameObjectRTTI::setInstanceID);
+			addPlainField("mName", 1, &GameObjectRTTI::getName, &GameObjectRTTI::setName);
 		}
 
 		virtual const String& getRTTIName()

+ 1 - 11
CamelotCore/Include/CmSceneObject.h

@@ -22,15 +22,10 @@ namespace CamelotFramework
 		static HSceneObject create(const String& name);
 		void destroy();
 
-		UINT32 getId() const { return mId; }
-		const String& getName() const { return mName; }
-
-		void setName(const String& name) { mName = name; }
-
 	private:
 		HSceneObject mThisHandle;
 
-		SceneObject(const String& name, UINT32 id);
+		SceneObject(const String& name);
 
 		static HSceneObject createInternal(const String& name);
 		void destroyInternal();
@@ -125,11 +120,6 @@ namespace CamelotFramework
 		void pitch(const Radian& angle);
 
 	private:
-		static UINT32 NextFreeId;
-
-		String mName;
-		UINT32 mId;
-
 		Vector3 mPosition;
 		Quaternion mRotation;
 		Vector3 mScale;

+ 2 - 6
CamelotCore/Include/CmSceneObjectRTTI.h

@@ -11,9 +11,6 @@ namespace CamelotFramework
 	class CM_EXPORT SceneObjectRTTI : public RTTIType<SceneObject, GameObject, SceneObjectRTTI>
 	{
 	private:
-		String& getName(SceneObject* obj) { return obj->mName; }
-		void setName(SceneObject* obj, String& name) { obj->mName = name; }
-
 		// NOTE - These can only be set sequentially, specific array index is ignored
 		std::shared_ptr<SceneObject> getChild(SceneObject* obj, UINT32 idx) { return obj->mChildren[idx].getInternalPtr(); }
 		void setChild(SceneObject* obj, UINT32 idx, std::shared_ptr<SceneObject> param) { param->setParent(obj->mThisHandle); } // NOTE: Can only be used for sequentially adding elements
@@ -29,10 +26,9 @@ namespace CamelotFramework
 	public:
 		SceneObjectRTTI()
 		{
-			addPlainField("mName", 0, &SceneObjectRTTI::getName, &SceneObjectRTTI::setName);
-			addReflectablePtrArrayField("mChildren", 1, &SceneObjectRTTI::getChild, 
+			addReflectablePtrArrayField("mChildren", 0, &SceneObjectRTTI::getChild, 
 				&SceneObjectRTTI::getNumChildren, &SceneObjectRTTI::setChild, &SceneObjectRTTI::setNumChildren);
-			addReflectablePtrArrayField("mComponents", 2, &SceneObjectRTTI::getComponent, 
+			addReflectablePtrArrayField("mComponents", 1, &SceneObjectRTTI::getComponent, 
 				&SceneObjectRTTI::getNumComponents, &SceneObjectRTTI::setComponent, &SceneObjectRTTI::setNumComponents);
 		}
 

+ 1 - 1
CamelotCore/Source/CmComponent.cpp

@@ -7,7 +7,7 @@ namespace CamelotFramework
 	Component::Component(const HSceneObject& parent)
 		:mParent(parent)
 	{
-
+		setName("Component");
 	}
 
 	Component::~Component()

+ 6 - 6
CamelotCore/Source/CmSceneObject.cpp

@@ -9,15 +9,15 @@
 
 namespace CamelotFramework
 {
-	UINT32 SceneObject::NextFreeId = 0;
-
-	SceneObject::SceneObject(const String& name, UINT32 id)
-		:mName(name), mId(id), mPosition(Vector3::ZERO), mRotation(Quaternion::IDENTITY), mScale(Vector3::ONE),
+	SceneObject::SceneObject(const String& name)
+		:GameObject(), mPosition(Vector3::ZERO), mRotation(Quaternion::IDENTITY), mScale(Vector3::ONE),
 		mWorldPosition(Vector3::ZERO), mWorldRotation(Quaternion::IDENTITY), mWorldScale(Vector3::ONE),
 		mCachedLocalTfrm(Matrix4::IDENTITY), mIsCachedLocalTfrmUpToDate(false),
 		mCachedWorldTfrm(Matrix4::IDENTITY), mIsCachedWorldTfrmUpToDate(false),
 		mCustomWorldTfrm(Matrix4::IDENTITY), mIsCustomTfrmModeActive(false)
-	{ }
+	{
+		setName(name);
+	}
 
 	SceneObject::~SceneObject()
 	{
@@ -39,7 +39,7 @@ namespace CamelotFramework
 
 	HSceneObject SceneObject::createInternal(const String& name)
 	{
-		std::shared_ptr<SceneObject> sceneObjectPtr = std::shared_ptr<SceneObject>(new (cm_alloc<SceneObject, PoolAlloc>()) SceneObject(name, NextFreeId++), 
+		std::shared_ptr<SceneObject> sceneObjectPtr = std::shared_ptr<SceneObject>(new (cm_alloc<SceneObject, PoolAlloc>()) SceneObject(name), 
 			&cm_delete<PoolAlloc, SceneObject>, StdAlloc<PoolAlloc>());
 		
 		HSceneObject sceneObject = GameObjectManager::instance().registerObject(sceneObjectPtr);

+ 0 - 1
Inspector.txt

@@ -4,7 +4,6 @@ Matrix3 field
 Matrix4 field
 GameObject field
 Resource field
-Component foldout field
 
 -------------
 Cursor