Compare commits
14 Commits
e5a1e71788
...
feat/molec
Author | SHA1 | Date | |
---|---|---|---|
aca2898e8c | |||
1bf7031f32 | |||
5ca3d16a29 | |||
824a8fdbc6 | |||
807aa8c3c6 | |||
3777d06a0e | |||
16bd5bfb6c | |||
da9d57b0bb | |||
5346e596c8 | |||
c302d4c277 | |||
f613217658 | |||
13c59458bb | |||
bc2b9e02fd | |||
34f74aa443 |
@ -15,7 +15,6 @@ public class ActiveScoppedElements : MonoBehaviour
|
||||
|
||||
|
||||
// Start is called before the first frame update
|
||||
public TextAsset jsonFile;
|
||||
public HashSet<String> actives = new HashSet<String>();
|
||||
public HashSet<GameObject> InstantiatesObject = new HashSet<GameObject>();
|
||||
public TextMeshProUGUI textToUpdate;
|
||||
@ -52,107 +51,9 @@ public class ActiveScoppedElements : MonoBehaviour
|
||||
}
|
||||
}
|
||||
|
||||
static IEnumerable<string> GetPermutations(List<string> list)
|
||||
{
|
||||
if (list.Count == 1)
|
||||
{
|
||||
// Cas de base : une seule chaîne
|
||||
yield return list[0];
|
||||
}
|
||||
else
|
||||
{
|
||||
// Récursion pour obtenir les permutations du reste de la liste
|
||||
foreach (var item in list)
|
||||
{
|
||||
var remaining = new List<string>(list);
|
||||
remaining.Remove(item);
|
||||
|
||||
foreach (var subPermutation in GetPermutations(remaining))
|
||||
{
|
||||
// Concaténer l'élément actuel avec les permutations du reste
|
||||
yield return item + subPermutation;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void DisableAllMarkerModel()
|
||||
{
|
||||
foreach (var o in GameObject.FindGameObjectsWithTag("OBJ"))
|
||||
{
|
||||
o.SetActive(false);
|
||||
DisableGameObjects.Add(o);
|
||||
}
|
||||
}
|
||||
|
||||
private void EnableAllMarkerModel()
|
||||
{
|
||||
foreach (var o in DisableGameObjects)
|
||||
{
|
||||
o.SetActive(true);
|
||||
}
|
||||
DisableGameObjects.Clear();
|
||||
}
|
||||
|
||||
private GameObject FindGameObjectWithFormula()
|
||||
{
|
||||
var factory = MoleculeFactory.getInstrance(this.jsonFile);
|
||||
Debug.Log("ACTIVES ELEMENTS:");
|
||||
Debug.Log(this.actives);
|
||||
foreach (var formula in GetPermutations(this.actives.ToList()))
|
||||
{
|
||||
Debug.Log("FORMULA: " + String.Join("", formula));
|
||||
if (factory.hasMolecule(String.Join("", formula)))
|
||||
{
|
||||
return factory.createMolecule(String.Join("", formula));
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private void RefreshAtom()
|
||||
{
|
||||
var objToFind = FindGameObjectWithFormula();
|
||||
if (objToFind != null)
|
||||
{
|
||||
Vector3 cameraPosition = Camera.main.transform.position;
|
||||
|
||||
// Obtenez la rotation de la caméra sans inclure la rotation autour de l'axe Y
|
||||
Quaternion cameraRotation = Quaternion.Euler(0, Camera.main.transform.rotation.eulerAngles.y, 0);
|
||||
|
||||
// Calculez la position finale en ajoutant la direction vers l'avant multipliée par la distance désirée
|
||||
Vector3 position = cameraPosition + cameraRotation * Vector3.forward * 0.35f;
|
||||
|
||||
//var instantiatedObj = Instantiate(objt.obj, position, cameraRotation);
|
||||
|
||||
objToFind.transform.position = position;
|
||||
objToFind.transform.localScale = new Vector3(0.05f, 0.05f, 0.05f);
|
||||
objToFind.transform.rotation = cameraRotation;
|
||||
|
||||
MeshRenderer meshRenderer = objToFind.GetComponent<MeshRenderer>();
|
||||
if (meshRenderer != null)
|
||||
{
|
||||
float sizeInDirection = meshRenderer.bounds.size.x; // Pour la hauteur, ajustez selon votre besoin
|
||||
Debug.Log("SizeInDirection: " + sizeInDirection);
|
||||
objToFind.transform.position -= objToFind.transform.right * sizeInDirection * 0.175f;
|
||||
}
|
||||
|
||||
Debug.Log("RefreshAtom(): Created " + objToFind.name);
|
||||
|
||||
objToFind.name = "[N] " + objToFind.name;
|
||||
InstantiatesObject.Add(objToFind);
|
||||
this.OnInstantiateObject(objToFind);
|
||||
Debug.Log("Instantiate " + objToFind.name);
|
||||
DisableAllMarkerModel();
|
||||
} else {
|
||||
foreach (var o in InstantiatesObject) {
|
||||
Destroy(o);
|
||||
OnDestroyObject(o);
|
||||
}
|
||||
InstantiatesObject.Clear();
|
||||
EnableAllMarkerModel();
|
||||
}
|
||||
/*foreach (var objt in objectToInstantiates)
|
||||
foreach (var objt in objectToInstantiates)
|
||||
{
|
||||
if (objt.elements.TrueForAll((s => actives.Contains(s))))
|
||||
{
|
||||
@ -165,7 +66,6 @@ public class ActiveScoppedElements : MonoBehaviour
|
||||
DisableGameObjects.Add(a);
|
||||
}
|
||||
}
|
||||
|
||||
// Obtenez la position de la caméra
|
||||
Vector3 cameraPosition = Camera.main.transform.position;
|
||||
|
||||
@ -175,18 +75,11 @@ public class ActiveScoppedElements : MonoBehaviour
|
||||
// Calculez la position finale en ajoutant la direction vers l'avant multipliée par la distance désirée
|
||||
Vector3 position = cameraPosition + cameraRotation * Vector3.forward * 0.35f;
|
||||
|
||||
//var instantiatedObj = Instantiate(objt.obj, position, cameraRotation);
|
||||
|
||||
var obj = MoleculeFactory.getInstrance(this.jsonFile).createMolecule("CO2");
|
||||
obj.transform.position = position;
|
||||
obj.transform.localScale = new Vector3(0.05f, 0.05f, 0.05f);
|
||||
obj.transform.rotation = cameraRotation;
|
||||
Debug.Log("RefreshAtom(): Created " + obj.name);
|
||||
|
||||
obj.name = "[N] " + objt.obj.name;
|
||||
InstantiatesObject.Add(obj);
|
||||
this.OnInstantiateObject(obj);
|
||||
Debug.Log("Instantiate " + obj.name);
|
||||
var instantiatedObj = Instantiate(objt.obj, position, cameraRotation);
|
||||
instantiatedObj.name = "[N] " + objt.obj.name;
|
||||
InstantiatesObject.Add(instantiatedObj);
|
||||
this.OnInstantiateObject(instantiatedObj);
|
||||
Debug.Log("Instantiate " + instantiatedObj.name);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -204,7 +97,7 @@ public class ActiveScoppedElements : MonoBehaviour
|
||||
DisableGameObjects.Clear();
|
||||
}
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
if (InstantiatesObject.Count > 0)
|
||||
{
|
||||
|
@ -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: []
|
||||
|
@ -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: []
|
||||
|
@ -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: []
|
||||
|
@ -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: []
|
||||
|
@ -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: []
|
||||
|
@ -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: []
|
||||
|
File diff suppressed because one or more lines are too long
@ -18,11 +18,11 @@ MonoBehaviour:
|
||||
delayedInitialization: 0
|
||||
cameraFocusModeSetting: 2
|
||||
cameraDeviceModeSetting: -1
|
||||
maxSimultaneousImageTargets: 8
|
||||
maxSimultaneousImageTargets: 4
|
||||
virtualSceneScaleFactor: 1
|
||||
modelTargetRecoWhileExtendedTracked: 1
|
||||
shareRecordingsInITunes: 0
|
||||
logLevel: 1
|
||||
logLevel: 0
|
||||
version: 10.18.4
|
||||
eulaAcceptedVersions: '{"Values":["10.17","10.18","0.0","10.15"]}'
|
||||
database:
|
||||
|
File diff suppressed because one or more lines are too long
@ -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
|
||||
|
@ -123,72 +123,6 @@ NavMeshSettings:
|
||||
debug:
|
||||
m_Flags: 0
|
||||
m_NavMeshData: {fileID: 0}
|
||||
--- !u!1001 &52111041
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 2115541903}
|
||||
m_Modifications:
|
||||
- target: {fileID: 2296197579250447769, guid: ae2d2b687aff85b46a01c62e312954d2, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: OBJ_Hydrogene
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2296197579250447769, guid: ae2d2b687aff85b46a01c62e312954d2, type: 3}
|
||||
propertyPath: m_TagString
|
||||
value: OBJ
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4757697444972247267, guid: ae2d2b687aff85b46a01c62e312954d2, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4757697444972247267, guid: ae2d2b687aff85b46a01c62e312954d2, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 0.234
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4757697444972247267, guid: ae2d2b687aff85b46a01c62e312954d2, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4757697444972247267, guid: ae2d2b687aff85b46a01c62e312954d2, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4757697444972247267, guid: ae2d2b687aff85b46a01c62e312954d2, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4757697444972247267, guid: ae2d2b687aff85b46a01c62e312954d2, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4757697444972247267, guid: ae2d2b687aff85b46a01c62e312954d2, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4757697444972247267, guid: ae2d2b687aff85b46a01c62e312954d2, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4757697444972247267, guid: ae2d2b687aff85b46a01c62e312954d2, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4757697444972247267, guid: ae2d2b687aff85b46a01c62e312954d2, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: ae2d2b687aff85b46a01c62e312954d2, type: 3}
|
||||
--- !u!4 &52111042 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 4757697444972247267, guid: ae2d2b687aff85b46a01c62e312954d2, type: 3}
|
||||
m_PrefabInstance: {fileID: 52111041}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1 &239149474
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -888,7 +822,6 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: 7895074e456606e4aa89ecc052bebf16, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
jsonFile: {fileID: 4900000, guid: 3a11d0f923ae50c4d82ee1dda0f629a3, type: 3}
|
||||
textToUpdate: {fileID: 1759769650}
|
||||
objectInstantiateText: {fileID: 701088218}
|
||||
objectToInstantiates:
|
||||
@ -1111,7 +1044,7 @@ GameObject:
|
||||
- component: {fileID: 1576193663}
|
||||
- component: {fileID: 1576193662}
|
||||
m_Layer: 0
|
||||
m_Name: H
|
||||
m_Name: Hydrogene
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
@ -1202,7 +1135,7 @@ MonoBehaviour:
|
||||
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
|
||||
m_IntArgument: 0
|
||||
m_FloatArgument: 0
|
||||
m_StringArgument: H
|
||||
m_StringArgument: Hydrogene
|
||||
m_BoolArgument: 0
|
||||
m_CallState: 2
|
||||
OnTargetLost:
|
||||
@ -1217,7 +1150,7 @@ MonoBehaviour:
|
||||
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
|
||||
m_IntArgument: 0
|
||||
m_FloatArgument: 0
|
||||
m_StringArgument: H
|
||||
m_StringArgument: Hydrogene
|
||||
m_BoolArgument: 0
|
||||
m_CallState: 2
|
||||
--- !u!114 &1576193664
|
||||
@ -1880,7 +1813,7 @@ GameObject:
|
||||
- component: {fileID: 2082618018}
|
||||
- component: {fileID: 2082618017}
|
||||
m_Layer: 0
|
||||
m_Name: O
|
||||
m_Name: Oxygene
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
@ -1971,7 +1904,7 @@ MonoBehaviour:
|
||||
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
|
||||
m_IntArgument: 0
|
||||
m_FloatArgument: 0
|
||||
m_StringArgument: O
|
||||
m_StringArgument: Oxygene
|
||||
m_BoolArgument: 0
|
||||
m_CallState: 2
|
||||
OnTargetLost:
|
||||
@ -1986,7 +1919,7 @@ MonoBehaviour:
|
||||
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
|
||||
m_IntArgument: 0
|
||||
m_FloatArgument: 0
|
||||
m_StringArgument: O
|
||||
m_StringArgument: Oxygene
|
||||
m_BoolArgument: 0
|
||||
m_CallState: 2
|
||||
--- !u!114 &2082618019
|
||||
@ -2016,260 +1949,6 @@ MonoBehaviour:
|
||||
mTrackingOptimization: 0
|
||||
mTrackingOptimizationNeedsUpgrade: 0
|
||||
mPreview: {fileID: 2082618017}
|
||||
--- !u!1 &2115541902
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2115541903}
|
||||
- component: {fileID: 2115541906}
|
||||
- component: {fileID: 2115541905}
|
||||
- component: {fileID: 2115541904}
|
||||
m_Layer: 0
|
||||
m_Name: H2
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &2115541903
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2115541902}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 1.134, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 52111042}
|
||||
m_Father: {fileID: 2141458387}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &2115541904
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2115541902}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 1778676317, guid: 8a9a760f95896c34689febc965510927, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
mObserverBehaviour: {fileID: 2115541906}
|
||||
mHiddenRoot: {fileID: 0}
|
||||
mTargetName: hydro
|
||||
mDatasetName: Vuforia/T-VIR.xml
|
||||
mCastedBehaviour: {fileID: 2115541906}
|
||||
mMeshFilter: {fileID: 0}
|
||||
mMeshRenderer: {fileID: 0}
|
||||
--- !u!114 &2115541905
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2115541902}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 886328de6a5c14cbb85854fdf1a5085b, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
StatusFilter: 0
|
||||
UsePoseSmoothing: 0
|
||||
AnimationCurve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 3.3333333
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
- serializedVersion: 3
|
||||
time: 0.3
|
||||
value: 1
|
||||
inSlope: 3.3333333
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
OnTargetFound:
|
||||
m_PersistentCalls:
|
||||
m_Calls:
|
||||
- m_Target: {fileID: 1201501054}
|
||||
m_TargetAssemblyTypeName: ActiveScoppedElements, Assembly-CSharp
|
||||
m_MethodName: AddScoppedElement
|
||||
m_Mode: 5
|
||||
m_Arguments:
|
||||
m_ObjectArgument: {fileID: 0}
|
||||
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
|
||||
m_IntArgument: 0
|
||||
m_FloatArgument: 0
|
||||
m_StringArgument: H2
|
||||
m_BoolArgument: 0
|
||||
m_CallState: 2
|
||||
OnTargetLost:
|
||||
m_PersistentCalls:
|
||||
m_Calls:
|
||||
- m_Target: {fileID: 1201501054}
|
||||
m_TargetAssemblyTypeName: ActiveScoppedElements, Assembly-CSharp
|
||||
m_MethodName: RemoveUnscoppedElement
|
||||
m_Mode: 5
|
||||
m_Arguments:
|
||||
m_ObjectArgument: {fileID: 0}
|
||||
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
|
||||
m_IntArgument: 0
|
||||
m_FloatArgument: 0
|
||||
m_StringArgument: H2
|
||||
m_BoolArgument: 0
|
||||
m_CallState: 2
|
||||
--- !u!114 &2115541906
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2115541902}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: -1631628248, guid: 8a9a760f95896c34689febc965510927, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
PreviewVisible: 1
|
||||
RuntimeOcclusion: 0
|
||||
RuntimeCollider: 0
|
||||
mTrackableName: hydro
|
||||
mInitializedInEditor: 1
|
||||
mDataSetPath: Vuforia/T-VIR.xml
|
||||
mAspectRatio: 1
|
||||
mImageTargetType: 0
|
||||
mWidth: 1
|
||||
mHeight: 1
|
||||
mRuntimeTexture: {fileID: 0}
|
||||
mMotionHint: 1
|
||||
mTrackingOptimization: 0
|
||||
mTrackingOptimizationNeedsUpgrade: 0
|
||||
mPreview: {fileID: 2115541904}
|
||||
--- !u!1 &2138147400
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2138147404}
|
||||
- component: {fileID: 2138147403}
|
||||
- component: {fileID: 2138147402}
|
||||
- component: {fileID: 2138147401}
|
||||
m_Layer: 0
|
||||
m_Name: SPHERE
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!135 &2138147401
|
||||
SphereCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2138147400}
|
||||
m_Material: {fileID: 0}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_IsTrigger: 0
|
||||
m_ProvidesContacts: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_Radius: 0.5
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
--- !u!23 &2138147402
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2138147400}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
m_SelectedEditorRenderState: 3
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!33 &2138147403
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2138147400}
|
||||
m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!4 &2138147404
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2138147400}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 1.9220078, y: 0.49818814, z: 0.32947016}
|
||||
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 &2141458382
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -2390,7 +2069,6 @@ Transform:
|
||||
m_Children:
|
||||
- {fileID: 2082618016}
|
||||
- {fileID: 1576193661}
|
||||
- {fileID: 2115541903}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &2141791690
|
||||
@ -2476,4 +2154,3 @@ SceneRoots:
|
||||
- {fileID: 2141458387}
|
||||
- {fileID: 1201501056}
|
||||
- {fileID: 1176767512}
|
||||
- {fileID: 2138147404}
|
||||
|
@ -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}
|
||||
|
49
Assets/script/AtomeFactory.cs
Normal file
49
Assets/script/AtomeFactory.cs
Normal file
@ -0,0 +1,49 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
|
||||
|
||||
public class AtomeFactory : MonoBehaviour{
|
||||
|
||||
public TextAsset jsonFile;
|
||||
|
||||
private static AtomeFactory instance;
|
||||
|
||||
private AtomesInformation atomeInJson;
|
||||
|
||||
private Dictionary<string, AtomeInformation> AtomeDictionary;
|
||||
|
||||
public AtomeFactory(TextAsset jsonFile){
|
||||
AtomeFactory.instance = this;
|
||||
AtomeDictionary = new Dictionary<string, AtomeInformation>();
|
||||
atomeInJson = JsonUtility.FromJson<AtomesInformation>(jsonFile.text);
|
||||
foreach (var atome in atomeInJson.atomes){
|
||||
AtomeDictionary.Add(atome.symbol, atome);
|
||||
}
|
||||
}
|
||||
|
||||
public static AtomeFactory getInstrance(){
|
||||
if(AtomeFactory.instance == null){
|
||||
Debug.LogError("no Json file");
|
||||
}
|
||||
return AtomeFactory.instance;
|
||||
}
|
||||
|
||||
public static AtomeFactory getInstrance(TextAsset jsonFile){
|
||||
if(AtomeFactory.instance == null){
|
||||
AtomeFactory.instance = new AtomeFactory(jsonFile);
|
||||
}
|
||||
return AtomeFactory.instance;
|
||||
}
|
||||
|
||||
public AtomeInformation createAtome(string symbol){
|
||||
if(!AtomeDictionary.ContainsKey(symbol)){
|
||||
Debug.LogError("Atome does not existe in json");
|
||||
}
|
||||
AtomeInformation atome = AtomeDictionary[symbol];
|
||||
|
||||
return atome;
|
||||
}
|
||||
|
||||
}
|
11
Assets/script/AtomeFactory.cs.meta
Normal file
11
Assets/script/AtomeFactory.cs.meta
Normal file
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 455447ed8d2676a4ba2d5cf8247bd83c
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
37
Assets/script/AtomeInformation.cs
Normal file
37
Assets/script/AtomeInformation.cs
Normal file
@ -0,0 +1,37 @@
|
||||
|
||||
using System.Collections.Generic;
|
||||
using System;
|
||||
|
||||
[System.Serializable]
|
||||
public class AtomeProps {
|
||||
public string yeardiscovered;
|
||||
public string atomicmass;
|
||||
public string standardstate;
|
||||
public string groupblock;
|
||||
public string discovered_by;
|
||||
public string named_by;
|
||||
}
|
||||
|
||||
[System.Serializable]
|
||||
public class Representation {
|
||||
public string color;
|
||||
}
|
||||
|
||||
[System.Serializable]
|
||||
public class AtomeInformation
|
||||
{
|
||||
public int atomicNumber;
|
||||
public string symbol;
|
||||
public string name;
|
||||
public int protons;
|
||||
public int neutrons;
|
||||
public AtomeProps properties;
|
||||
public Representation representation;
|
||||
}
|
||||
|
||||
[System.Serializable]
|
||||
public class AtomesInformation
|
||||
{
|
||||
// liste des liason entre les atoms
|
||||
public AtomeInformation[] atomes;
|
||||
}
|
11
Assets/script/AtomeInformation.cs.meta
Normal file
11
Assets/script/AtomeInformation.cs.meta
Normal file
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d2ff888d2e46a254ebb339c8dd3ed083
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
25
Assets/script/FactoryTester.cs
Normal file
25
Assets/script/FactoryTester.cs
Normal file
@ -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.)
|
||||
}
|
||||
|
||||
}
|
11
Assets/script/FactoryTester.cs.meta
Normal file
11
Assets/script/FactoryTester.cs.meta
Normal file
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8c2433f4f2c3ba343851fdf3c660c21e
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -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
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -8,6 +8,7 @@ public class MoleculeFactory : MonoBehaviour{
|
||||
|
||||
public TextAsset jsonFile;
|
||||
|
||||
private AtomeFactory atomeFactory;
|
||||
private static MoleculeFactory instance;
|
||||
|
||||
private Molecules moleculesInJson;
|
||||
@ -37,28 +38,53 @@ public class MoleculeFactory : MonoBehaviour{
|
||||
return MoleculeFactory.instance;
|
||||
}
|
||||
|
||||
public Boolean hasMolecule(String formula)
|
||||
{
|
||||
return moleculesDictionary.ContainsKey(formula);
|
||||
}
|
||||
|
||||
public GameObject createMolecule (string formula){
|
||||
if(!moleculesDictionary.ContainsKey(formula)){
|
||||
Debug.LogError("molecules does not existe in json");
|
||||
}
|
||||
Molecule molecule = moleculesDictionary[formula];
|
||||
GameObject sortie = new GameObject(molecule.name);
|
||||
|
||||
foreach (Atom atom in molecule.atoms) {
|
||||
var template = GameObject.Find("SPHERE");
|
||||
var createdObj = Instantiate(template, new Vector3(atom.geometry[0], atom.geometry[1], atom.geometry[2]), Quaternion.identity);
|
||||
createdObj.transform.parent = sortie.transform;
|
||||
createdObj.name = atom.element;
|
||||
createdObj.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
|
||||
GameObject sphere = GameObject.CreatePrimitive(PrimitiveType.Sphere);
|
||||
sphere.transform.parent = sortie.transform;
|
||||
sphere.name = atom.element;
|
||||
sphere.transform.localPosition = new Vector3(atom.geometry[0], atom.geometry[1], atom.geometry[2]);
|
||||
AtomeInformation att = atomeFactory.createAtome(atom.element);
|
||||
Color myColor = new Color(0, 0, 1, 1);
|
||||
ColorUtility.TryParseHtmlString(att.representation.color, out myColor);
|
||||
sphere.GetComponent<Renderer>().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;
|
||||
}
|
||||
|
||||
}
|
2128
Assets/script/atomes.json
Normal file
2128
Assets/script/atomes.json
Normal file
File diff suppressed because it is too large
Load Diff
7
Assets/script/atomes.json.meta
Normal file
7
Assets/script/atomes.json.meta
Normal file
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ab8f44086e6af6f48a38b7d7d595e9a2
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -1 +1 @@
|
||||
AAABmQWapYRGu7Loo2wvgwZUGzXNOVLSaix1jbBp7+6hM1WFhjBkddUoLqWxkauNc7gcguqgEle3Gl3JhXdUv8TOSygVCeRnuokmoncR2/5V78p0F0Cfn5gBebVC39W8GQ6XkVyp75Y8d30EG+W8VKPfuse2cfavkxXpI2Nl3LSy0VRONL0XNPimQXCFL0ahAeUkOc37yrfYL9FrG7wg4Rw+k4YLs++CGJhpcKysknksOgQGrDLh9Hj9lfoKw+YWYwvTA55r6X388fA3hXuRGNehejMd4orrTqM65do7Uf0KR4eC/KXr5cmkSwN4FwRxWaGm16G0tXit+hD29lyZbT/XJ64=
|
||||
AAABmY7g9UmlfucNZM2mK1+zBTca7O7gdAXUc9FcH4yUbYfsFOfH72rVb0qPESQq/9HBlqfD04SyJF6jtD6oQDsZxFAYgmMCBkOzNr/C/s4mdV37Qw5Nm9GqecPYpccvAWOqH/VAtFBp5ksgnAnVhuHUqh0NmvpixXq82Meo/bg7usPAWSDsQt/6kR89nttLOknq/Rt+SN8E91Txj6nsYZH8gsxrgC9MYPO0koHuIvfeLk0wcqrMzxZawaNLp6CNWgUYDXWIWW1AtB9dY5p56nnk/Yd4MyRevYDtcWdXCdiam48zdO470AuA8DkAFHOttVURidwRkVKq4z40E6J+5V3NqDg=
|
Reference in New Issue
Block a user