diff --git a/Assets/Editor/Vuforia/ImageTargetTextures/T-VIR/hydro_scaled.jpg.meta b/Assets/Editor/Vuforia/ImageTargetTextures/T-VIR/hydro_scaled.jpg.meta index 3a878bc..410b7bd 100644 --- a/Assets/Editor/Vuforia/ImageTargetTextures/T-VIR/hydro_scaled.jpg.meta +++ b/Assets/Editor/Vuforia/ImageTargetTextures/T-VIR/hydro_scaled.jpg.meta @@ -158,6 +158,19 @@ TextureImporter: ignorePlatformSupport: 0 androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 spriteSheet: serializedVersion: 2 sprites: [] diff --git a/Assets/Editor/Vuforia/ImageTargetTextures/T-VIR/hydrogen_scaled.jpg.meta b/Assets/Editor/Vuforia/ImageTargetTextures/T-VIR/hydrogen_scaled.jpg.meta index 2367ce6..5b70df3 100644 --- a/Assets/Editor/Vuforia/ImageTargetTextures/T-VIR/hydrogen_scaled.jpg.meta +++ b/Assets/Editor/Vuforia/ImageTargetTextures/T-VIR/hydrogen_scaled.jpg.meta @@ -158,6 +158,19 @@ TextureImporter: ignorePlatformSupport: 0 androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 spriteSheet: serializedVersion: 2 sprites: [] diff --git a/Assets/Editor/Vuforia/ImageTargetTextures/T-VIR/hydrogene_marker_scaled.jpg.meta b/Assets/Editor/Vuforia/ImageTargetTextures/T-VIR/hydrogene_marker_scaled.jpg.meta index 9a1e363..352c1c9 100644 --- a/Assets/Editor/Vuforia/ImageTargetTextures/T-VIR/hydrogene_marker_scaled.jpg.meta +++ b/Assets/Editor/Vuforia/ImageTargetTextures/T-VIR/hydrogene_marker_scaled.jpg.meta @@ -158,6 +158,19 @@ TextureImporter: ignorePlatformSupport: 0 androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 spriteSheet: serializedVersion: 2 sprites: [] diff --git a/Assets/Editor/Vuforia/ImageTargetTextures/T-VIR/oxy_scaled.jpg.meta b/Assets/Editor/Vuforia/ImageTargetTextures/T-VIR/oxy_scaled.jpg.meta index bc0bc3a..7f1ae49 100644 --- a/Assets/Editor/Vuforia/ImageTargetTextures/T-VIR/oxy_scaled.jpg.meta +++ b/Assets/Editor/Vuforia/ImageTargetTextures/T-VIR/oxy_scaled.jpg.meta @@ -158,6 +158,19 @@ TextureImporter: ignorePlatformSupport: 0 androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 spriteSheet: serializedVersion: 2 sprites: [] diff --git a/Assets/Editor/Vuforia/ImageTargetTextures/T-VIR/oxygen_scaled.jpg.meta b/Assets/Editor/Vuforia/ImageTargetTextures/T-VIR/oxygen_scaled.jpg.meta index 3c52141..b02bb7e 100644 --- a/Assets/Editor/Vuforia/ImageTargetTextures/T-VIR/oxygen_scaled.jpg.meta +++ b/Assets/Editor/Vuforia/ImageTargetTextures/T-VIR/oxygen_scaled.jpg.meta @@ -158,6 +158,19 @@ TextureImporter: ignorePlatformSupport: 0 androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 spriteSheet: serializedVersion: 2 sprites: [] diff --git a/Assets/Editor/Vuforia/ImageTargetTextures/T-VIR/oxygene_marker_scaled.jpg.meta b/Assets/Editor/Vuforia/ImageTargetTextures/T-VIR/oxygene_marker_scaled.jpg.meta index ec8a017..5d9db1b 100644 --- a/Assets/Editor/Vuforia/ImageTargetTextures/T-VIR/oxygene_marker_scaled.jpg.meta +++ b/Assets/Editor/Vuforia/ImageTargetTextures/T-VIR/oxygene_marker_scaled.jpg.meta @@ -158,6 +158,19 @@ TextureImporter: ignorePlatformSupport: 0 androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 spriteSheet: serializedVersion: 2 sprites: [] diff --git a/Assets/XR/Settings/OpenXR Package Settings.asset b/Assets/XR/Settings/OpenXR Package Settings.asset index 4d54df4..f10e465 100644 --- a/Assets/XR/Settings/OpenXR Package Settings.asset +++ b/Assets/XR/Settings/OpenXR Package Settings.asset @@ -348,10 +348,11 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 9f0ebc320a151d3408ea1e9fce54d40e, type: 3} m_Name: OpenXR Package Settings m_EditorClassIdentifier: - Keys: 0100000007000000 + Keys: 01000000070000000d000000 Values: - {fileID: -2820601610673514729} - {fileID: -7933880819051152802} + - {fileID: 2102387217465899027} --- !u!114 &328694643663705065 MonoBehaviour: m_ObjectHideFlags: 0 @@ -455,6 +456,21 @@ MonoBehaviour: company: Unity priority: 0 required: 0 +--- !u!114 &2102387217465899027 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b5a1f07dc5afe854f9f12a4194aca3fb, type: 3} + m_Name: WebGL + m_EditorClassIdentifier: + features: [] + m_renderMode: 1 + m_depthSubmissionMode: 0 --- !u!114 &2292148946669457467 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/Assets/__Scenes/MainMenu.unity b/Assets/__Scenes/MainMenu.unity index 5bfc3bd..1aac405 100644 --- a/Assets/__Scenes/MainMenu.unity +++ b/Assets/__Scenes/MainMenu.unity @@ -38,7 +38,7 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0.3708985, g: 0.37837005, b: 0.3572253, a: 1} + m_IndirectSpecularColor: {r: 0.37311918, g: 0.3807398, b: 0.35872716, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: @@ -332,6 +332,52 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 136169417} m_CullTransparentMesh: 1 +--- !u!1 &524575261 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 524575263} + - component: {fileID: 524575262} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &524575262 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 524575261} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8c2433f4f2c3ba343851fdf3c660c21e, type: 3} + m_Name: + m_EditorClassIdentifier: + moleculeJson: {fileID: 4900000, guid: 3a11d0f923ae50c4d82ee1dda0f629a3, type: 3} + atomJson: {fileID: 4900000, guid: ab8f44086e6af6f48a38b7d7d595e9a2, type: 3} +--- !u!4 &524575263 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 524575261} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.5532938, y: -1.3569599, z: -4.0075746} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &534669303 GameObject: m_ObjectHideFlags: 0 @@ -1250,3 +1296,4 @@ SceneRoots: - {fileID: 693850230} - {fileID: 732397232} - {fileID: 534669306} + - {fileID: 524575263} diff --git a/Assets/script/FactoryTester.cs b/Assets/script/FactoryTester.cs new file mode 100644 index 0000000..8495d8b --- /dev/null +++ b/Assets/script/FactoryTester.cs @@ -0,0 +1,25 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + + + + +class MoleculeFactoryTester: MonoBehaviour { + + public TextAsset moleculeJson; + public TextAsset atomJson; + + void Start(){ + MoleculeFactory factory = MoleculeFactory.getInstrance(this.moleculeJson); + AtomeFactory atomeFactory = AtomeFactory.getInstrance(this.atomJson); + factory.setAtomFactory(atomeFactory); + GameObject mol = factory.createMolecule("O2"); + GameObject mol2 = factory.createMolecule("H2O"); + mol.transform.position = new Vector3(0,1,0); + GameObject mol3 = factory.createMolecule("C4H10"); + mol3.transform.position = new Vector3(0,5,0); + //GameObject bon = GameOject.CreatePrimitive(PrimitiveType.) + } + +} \ No newline at end of file diff --git a/Assets/script/FactoryTester.cs.meta b/Assets/script/FactoryTester.cs.meta new file mode 100644 index 0000000..41cea17 --- /dev/null +++ b/Assets/script/FactoryTester.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8c2433f4f2c3ba343851fdf3c660c21e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/script/Molecul.json b/Assets/script/Molecul.json index f08188d..2b0f648 100644 --- a/Assets/script/Molecul.json +++ b/Assets/script/Molecul.json @@ -93,6 +93,23 @@ "meltingPoint": -138.3, "boilingPoint": -0.5 } + },{ + "name": "Eau", + "formula": "H2O", + "atoms": [ + {"element": "O", "geometry": [0.0, 0.0, 0.0]}, + {"element": "H", "geometry": [1.2, 0.0, 0.0]}, + {"element": "H", "geometry": [-1.2, 0.0, 0.0]} + ], + "bonds": [ + {"atoms": [0, 1], "order": 1}, + {"atoms": [0, 2], "order": 1} + ], + "properties": { + "molecularMass": 18.01528, + "meltingPoint": 0.0, + "boilingPoint": 100.0 + } } ] } diff --git a/Assets/script/MoleculeFactory.cs b/Assets/script/MoleculeFactory.cs index 3607df5..c694cbf 100644 --- a/Assets/script/MoleculeFactory.cs +++ b/Assets/script/MoleculeFactory.cs @@ -8,11 +8,12 @@ public class MoleculeFactory : MonoBehaviour{ public TextAsset jsonFile; + private AtomeFactory atomeFactory; private static MoleculeFactory instance; private Molecules moleculesInJson; - private Dictionary moleculesDictionary; + private Dictionary moleculesDictionary; public MoleculeFactory(TextAsset jsonFile){ MoleculeFactory.instance = this; @@ -49,11 +50,41 @@ public class MoleculeFactory : MonoBehaviour{ sphere.transform.parent = sortie.transform; sphere.name = atom.element; sphere.transform.localPosition = new Vector3(atom.geometry[0], atom.geometry[1], atom.geometry[2]); - //TODO: géré les laision - //TODO: géré la taille de l'atome - //TODO: géré la couleur de l'atome + AtomeInformation att = atomeFactory.createAtome(atom.element); + Color myColor = new Color(0, 0, 1, 1); + ColorUtility.TryParseHtmlString(att.representation.color, out myColor); + sphere.GetComponent().material.color = myColor; + } + foreach (Bond bond in molecule.bonds){ + float atom1x = molecule.atoms[bond.atoms[0]].geometry[0]; + float atom2x = molecule.atoms[bond.atoms[1]].geometry[0]; + float atom1y = molecule.atoms[bond.atoms[0]].geometry[1]; + float atom2y = molecule.atoms[bond.atoms[1]].geometry[1]; + float atom1z = molecule.atoms[bond.atoms[0]].geometry[2]; + float atom2z = molecule.atoms[bond.atoms[1]].geometry[2]; + Vector3 vecAtom1 = new Vector3(atom1x, atom1y, atom1z); + Vector3 vecAtom2 = new Vector3(atom2x, atom2y, atom2z); + GameObject GObond = CreateCylinderBetweenPoints(vecAtom1,vecAtom2, 0.3f); + GObond.transform.parent = sortie.transform; } return sortie; } + public void setAtomFactory(AtomeFactory atomeFactory){ + this.atomeFactory = atomeFactory; + } + + private GameObject CreateCylinderBetweenPoints(Vector3 start, Vector3 end, float width){ + var offset = end - start; + var scale = new Vector3(width, offset.magnitude / 2.0f, width); + var position = start + (offset / 2.0f); + + var cylinderPrefab = GameObject.CreatePrimitive(PrimitiveType.Cylinder); + cylinderPrefab.transform.position = position; + cylinderPrefab.transform.rotation = Quaternion.identity; + cylinderPrefab.transform.up = offset; + cylinderPrefab.transform.localScale = scale; + return cylinderPrefab; + } + } \ No newline at end of file