|
|
@@ -23,6 +23,7 @@ namespace BansheeEngine
|
|
|
{
|
|
|
metaData.scriptClass->addInternalCall("Internal_CalculateBounds", &ScriptEditorUtility::internal_CalculateBounds);
|
|
|
metaData.scriptClass->addInternalCall("Internal_CalculateBoundsArray", &ScriptEditorUtility::internal_CalculateBoundsArray);
|
|
|
+ metaData.scriptClass->addInternalCall("Internal_CalculateArrayCenter", &ScriptEditorUtility::internal_CalculateArrayCenter);
|
|
|
metaData.scriptClass->addInternalCall("Internal_FindDependencies", &ScriptEditorUtility::internal_FindDependencies);
|
|
|
metaData.scriptClass->addInternalCall("Internal_IsInternal", &ScriptEditorUtility::internal_IsInternal);
|
|
|
}
|
|
|
@@ -81,6 +82,25 @@ namespace BansheeEngine
|
|
|
return output.getInternal();
|
|
|
}
|
|
|
|
|
|
+ void ScriptEditorUtility::internal_CalculateArrayCenter(MonoArray* objects, Vector3* center)
|
|
|
+ {
|
|
|
+ Vector<HSceneObject> sceneObjects;
|
|
|
+
|
|
|
+ ScriptArray scriptArray(objects);
|
|
|
+ UINT32 arrayLen = scriptArray.size();
|
|
|
+ for (UINT32 i = 0; i < arrayLen; i++)
|
|
|
+ {
|
|
|
+ MonoObject* curObject = scriptArray.get<MonoObject*>(i);
|
|
|
+
|
|
|
+ ScriptSceneObject* scriptSO = ScriptSceneObject::toNative(curObject);
|
|
|
+
|
|
|
+ if (scriptSO != nullptr)
|
|
|
+ sceneObjects.push_back(static_object_cast<SceneObject>(scriptSO->getNativeHandle()));
|
|
|
+ }
|
|
|
+
|
|
|
+ *center = EditorUtility::calculateCenter(sceneObjects);
|
|
|
+ }
|
|
|
+
|
|
|
bool ScriptEditorUtility::internal_IsInternal(ScriptSceneObject* soPtr)
|
|
|
{
|
|
|
if (ScriptSceneObject::checkIfDestroyed(soPtr))
|