Verified Commit 54300443 authored by Sebastian Höffner's avatar Sebastian Höffner
Browse files

Adding context export.

parent 01f9ad24
...@@ -197,7 +197,7 @@ Material: ...@@ -197,7 +197,7 @@ Material:
- _EnableGeometricSpecularAA: 0 - _EnableGeometricSpecularAA: 0
- _EnergyConservingSpecularColor: 1 - _EnergyConservingSpecularColor: 1
- _GlossMapScale: 0.942 - _GlossMapScale: 0.942
- _Glossiness: 0.807 - _Glossiness: 0.951
- _GlossyReflections: 1 - _GlossyReflections: 1
- _HdrpVersion: 2 - _HdrpVersion: 2
- _HeightAmplitude: 0.02 - _HeightAmplitude: 0.02
...@@ -215,7 +215,7 @@ Material: ...@@ -215,7 +215,7 @@ Material:
- _IridescenceThickness: 1 - _IridescenceThickness: 1
- _LinkDetailsWithBase: 0 - _LinkDetailsWithBase: 0
- _MaterialID: 1 - _MaterialID: 1
- _Metallic: 0.48099676 - _Metallic: 0.843
- _Mode: 2 - _Mode: 2
- _NormalMapSpace: 0 - _NormalMapSpace: 0
- _NormalScale: 1 - _NormalScale: 1
...@@ -275,7 +275,7 @@ Material: ...@@ -275,7 +275,7 @@ Material:
m_Colors: m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 0.14117648} - _BaseColor: {r: 1, g: 1, b: 1, a: 0.14117648}
- _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0}
- _Color: {r: 1, g: 1, b: 1, a: 0.14117648} - _Color: {r: 1, g: 1, b: 1, a: 0.3764706}
- _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0}
- _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0}
- _EmissionColor: {r: 1, g: 1, b: 1, a: 1} - _EmissionColor: {r: 1, g: 1, b: 1, a: 1}
......
[
{
"name": "actor_0",
"is_a": [
"http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#PhysicalAgent"
],
"components": {
"transform": {
"position": {
"x": 0,
"y": 0,
"z": 0
},
"orientation": {
"x": 0,
"y": 0,
"z": 0,
"w": 0
}
}
}
},
{
"name": "table_0",
"is_a": [
"http://www.ease-crc.org/ont/EASE.owl#Table"
],
"components": {
"transform": {
"position": {
"x": 0,
"y": 0,
"z": 0
},
"orientation": {
"x": 0,
"y": 0,
"z": 0,
"w": 0
}
}
}
},
{
"name": "?task_0",
"is_a": [
"http://www.ease-crc.org/ont/EASE-ACT.owl#Placing"
],
"classifies": [
"action_0"
],
"components": {}
},
{
"name": "cup_0",
"is_a": [
"http://ease-ph.glpages.informatik.uni-bremen.de/dlu/dlu/EASE-DLUext.owl#Cup"
],
"isOntopOf": [
"table_0"
],
"components": {
"transform": {
"position": {
"x": 0,
"y": 0,
"z": 0
},
"orientation": {
"x": 0,
"y": 0,
"z": 0,
"w": 0
}
}
}
},
{
"name": "action_0",
"is_a": [
"http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#Action"
],
"hasParticipant": [
"actor_0",
"cup_0"
],
"components": {}
}
]
\ No newline at end of file
fileFormatVersion: 2 fileFormatVersion: 2
guid: de24df3b941ba4a44bc55ca1ecbc28bd guid: c43bcf70078a54744bec23911f7c7e7b
TextScriptImporter: TextScriptImporter:
externalObjects: {} externalObjects: {}
userData: userData:
......
[
{
"name": "actor_1",
"is_a": [
"PhysicalAgent"
],
"is_a_iri": [
"http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#PhysicalAgent"
],
"components": {
"transform": {
"position": {
"x": 0,
"y": 0,
"z": 0
},
"orientation": {
"x": 0,
"y": 0,
"z": 0,
"w": 0
}
}
}
},
{
"name": "table_45",
"is_a": [
"Table"
],
"is_a_iri": [
"http://www.ease-crc.org/ont/EASE.owl#Table"
],
"components": {
"transform": {
"position": {
"x": 0,
"y": 0,
"z": 0
},
"orientation": {
"x": 0,
"y": 0,
"z": 0,
"w": 0
}
}
}
},
{
"name": "action_82",
"is_a": [
"Action"
],
"is_a_iri": [
"http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#Action"
],
"hasParticipant": [
"cup_33",
"actor_1"
],
"components": {}
},
{
"name": "?task_var",
"is_a": [
"Placing"
],
"is_a_iri": [
"http://www.ease-crc.org/ont/EASE-ACT.owl#Placing"
],
"isOntopOf": [
"table_45"
],
"classifies": [
"action_82"
],
"components": {}
},
{
"name": "cup_33",
"is_a": [
"DesignedContainer"
],
"is_a_iri": [
"http://www.ease-crc.org/ont/EASE.owl#DesignedContainer"
],
"components": {
"transform": {
"position": {
"x": 0,
"y": 0,
"z": 0
},
"orientation": {
"x": 0,
"y": 0,
"z": 0,
"w": 0
}
}
}
}
]
\ No newline at end of file
...@@ -3535,13 +3535,13 @@ Transform: ...@@ -3535,13 +3535,13 @@ Transform:
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 705507993} m_GameObject: {fileID: 705507993}
m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} m_LocalRotation: {x: 0.22958693, y: -0.25140178, z: 0.061517622, w: 0.9382444}
m_LocalPosition: {x: 0.276663, y: 2.3360832, z: -0.34766424} m_LocalPosition: {x: 0.276663, y: 2.3360832, z: -0.34766424}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 1143887711} m_Father: {fileID: 1143887711}
m_RootOrder: 0 m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} m_LocalEulerAnglesHint: {x: 27.5, y: -30, z: 0}
--- !u!114 &705507997 --- !u!114 &705507997
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
......
using UnityEngine; using UnityEngine;
using UnityEditor; using UnityEditor;
using System.Linq; using System.Linq;
using SimpleJSON;
using System.IO;
namespace dlu namespace dlu
{ {
...@@ -9,12 +11,15 @@ namespace dlu ...@@ -9,12 +11,15 @@ namespace dlu
public class SceneControllerEditor : Editor public class SceneControllerEditor : Editor
{ {
private bool showLabels; private bool showLabels;
private bool exportContext;
public override void OnInspectorGUI() public override void OnInspectorGUI()
{ {
SceneController sc = (SceneController) target; SceneController sc = (SceneController) target;
base.DrawDefaultInspector(); base.DrawDefaultInspector();
EditorGUILayout.Space();
this.ExportContext(sc);
EditorGUILayout.Space(); EditorGUILayout.Space();
this.ShowSemanticLabels(sc); this.ShowSemanticLabels(sc);
...@@ -41,6 +46,27 @@ public class SceneControllerEditor : Editor ...@@ -41,6 +46,27 @@ public class SceneControllerEditor : Editor
EditorGUILayout.ObjectField(label, sb.gameObject, typeof(GameObject), true); EditorGUILayout.ObjectField(label, sb.gameObject, typeof(GameObject), true);
} }
} }
EditorGUILayout.EndFoldoutHeaderGroup();
}
private void ExportContext(SceneController sc)
{
exportContext = EditorGUILayout.BeginFoldoutHeaderGroup(exportContext, "Export context");
if (exportContext)
{
JSONArray sceneJson = sc.GenerateContextJSON();
EditorGUILayout.TextArea(sceneJson.ToString());
string exportFile = EditorGUILayout.TextField("Export file", "Assets/DLU/Resources/context.json");
if (GUILayout.Button("Export to file"))
{
File.WriteAllText(exportFile, sceneJson.ToString());
}
}
EditorGUILayout.EndFoldoutHeaderGroup();
} }
} }
......
...@@ -3,7 +3,7 @@ using UnityEngine; ...@@ -3,7 +3,7 @@ using UnityEngine;
namespace dlu namespace dlu
{ {
public class InstanceIdentifier : MonoBehaviour public class InstanceIdentifier : SemanticBehaviour
{ {
public new string name; public new string name;
} }
......
using UnityEngine; using UnityEngine;
using SimpleJSON; using SimpleJSON;
using System.Collections.Generic;
namespace dlu namespace dlu
{ {
public class SceneController : MonoBehaviour public class SceneController : MonoBehaviour
{ {
public string json = "test"; public string instructionJson = "instruction.json";
public string contextJson = "context.json";
[HideInInspector] [HideInInspector]
public SemanticBehaviour[] semanticBehaviours; public SemanticBehaviour[] semanticBehaviours;
...@@ -18,29 +19,64 @@ public class SceneController : MonoBehaviour ...@@ -18,29 +19,64 @@ public class SceneController : MonoBehaviour
FindSemanticLabels(); FindSemanticLabels();
} }
string jsonContent = Resources.Load<TextAsset>(json).text; // string jsonContent = Resources.Load<TextAsset>(instructionJson).text;
// Debug.Log(JsonUtility.ToJson(GameObject.Find("Objects/cup").GetComponent<Entity>())); // JSONArray scene = JSON.Parse(jsonContent) as JSONArray;
// List<Entity> scene = JsonConvert.DeserializeObject<List<Entity>>(jsonContent); // foreach (JSONObject obj in scene)
JSONArray scene = JSON.Parse(jsonContent) as JSONArray; // {
foreach (JSONObject obj in scene) // SetGameObjectState(obj);
{ // }
SetGameObjectState(obj); }
}
// private void SetGameObjectState(JSONObject sceneObject)
// {
// string name = sceneObject["name"];
// // Debug.Log($"name {name}");
// GameObject go = GameObject.Find($"Objects/{name}");
// if (go != null) {
// // Debug.Log(go);
// }
// }
public void FindSemanticLabels()
{
this.semanticBehaviours = GameObject.FindObjectsOfType<SemanticBehaviour>();
} }
private void SetGameObjectState(JSONObject sceneObject) public JSONArray GenerateContextJSON()
{ {
string name = sceneObject["name"]; if (this.semanticBehaviours == null)
// Debug.Log($"name {name}"); {
GameObject go = GameObject.Find($"Objects/{name}"); FindSemanticLabels();
if (go != null) { }
// Debug.Log(go);
Dictionary<string, JSONObject> sceneDict = new Dictionary<string, JSONObject>();
JSONArray sceneArray = new JSONArray();
foreach (SemanticBehaviour sb in this.semanticBehaviours)
{
JSONObject jsonObject = null;
if (!sceneDict.ContainsKey(sb.name))
{
sceneDict[sb.name] = new JSONObject();
sceneDict[sb.name].Add("is_a", new JSONArray());
sceneArray.Add(sceneDict[sb.name]);
}
jsonObject = sceneDict[sb.name];
jsonObject["is_a"].Add(sb.is_a);
switch (sb)
{
case InstanceIdentifier identifier: HandleInstanceIdentifier(jsonObject, identifier); break;
default:
Debug.LogWarning("Trying to add SemanticBehaviour to JSON, but no case exists.", sb);
break;
}
} }
return sceneArray;
} }
public void FindSemanticLabels() private void HandleInstanceIdentifier(JSONObject jsonObject, InstanceIdentifier identifier)
{ {
this.semanticBehaviours = GameObject.FindObjectsOfType<SemanticBehaviour>(); jsonObject["name"] = identifier.name;
} }
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment