From c0024627d15dcbea418c1289b30f96b38f85be1b Mon Sep 17 00:00:00 2001
From: Marius Kern <mariusskern@gmail.com>
Date: Mon, 30 Dec 2024 17:25:17 +0100
Subject: [PATCH] Facts

---
 .../FactHandling/Facts/CuboidFact.cs          | 29 ++++---------
 .../FactHandling/Facts/CylinderFact.cs        | 32 ++++++---------
 .../FactHandling/Facts/PrismFact.cs           | 41 ++++++++-----------
 .../FactHandling/Facts/PyramidFact.cs         | 23 ++++-------
 .../FactHandling/Facts/RectangleFact.cs       | 28 ++++++-------
 .../FactHandling/Facts/SphereFact.cs          | 27 +++++-------
 .../FactHandling/Facts/TriangleFact2.cs       | 27 ++++++------
 7 files changed, 83 insertions(+), 124 deletions(-)

diff --git a/Assets/Scripts/InteractionEngine/FactHandling/Facts/CuboidFact.cs b/Assets/Scripts/InteractionEngine/FactHandling/Facts/CuboidFact.cs
index 3a03ed0b..54d494af 100644
--- a/Assets/Scripts/InteractionEngine/FactHandling/Facts/CuboidFact.cs
+++ b/Assets/Scripts/InteractionEngine/FactHandling/Facts/CuboidFact.cs
@@ -11,19 +11,17 @@
 /// </summary>
 public class CuboidFact : FactWrappedCRTP<CuboidFact>
 {
-
-
     //used points
     public string PidR, PidT;
-    public Vector3 T;
-    public RectangleFact RF = null;
-    public float Volume = 0.0F;
 
+    [JsonIgnore] public Vector3 T;
+    [JsonIgnore] public RectangleFact RF = null;
+    [JsonIgnore] public float Volume = 0.0F;
 
-    public RectangleFact GetR {get =>  (RectangleFact)FactRecorder.AllFacts[PidR];}
-    public PointFact GetT {get =>  (PointFact)FactRecorder.AllFacts[PidT];}
-    protected void calculate_vectors(){
+    [JsonIgnore] public RectangleFact GetR {get =>  (RectangleFact)FactRecorder.AllFacts[PidR];}
+    [JsonIgnore] public PointFact GetT {get =>  (PointFact)FactRecorder.AllFacts[PidT];}
 
+    protected void calculate_vectors(){
         /*
         A = ((PointFact)FactRecorder.AllFacts[PidA]).Point + Vector3.zero;
         B = ((PointFact)FactRecorder.AllFacts[PidB]).Point + Vector3.zero;
@@ -66,16 +64,14 @@ protected void calculate_vectors(){
         Vector3 up = Vector3.Cross(right, cross).normalized;
 
         Rotation = Quaternion.LookRotation(cross, up);
-
-
-   
     }
 
     public CuboidFact() : base(){
         this.PidR = null;
         this.PidT = null;
     }
-    [JsonConstructor]
+
+    // [JsonConstructor]
     public CuboidFact( string PidR, string PidT) : base()
     {
 
@@ -83,7 +79,6 @@ public CuboidFact( string PidR, string PidT) : base()
         this.PidT = PidT;
 
         calculate_vectors();
-
     }
 
     /// <summary>
@@ -94,18 +89,12 @@ public CuboidFact( string PidR, string PidT) : base()
     /// <param name="ServerDefinition">MMT URI as OMS</param>
     public CuboidFact(string PidR, string PidT, SOMDoc ServerDefinition) : base()
     {
-  
-
         this.PidR = PidR;
         this.PidT = PidT;
 
         this.ServerDefinition = ServerDefinition;
 
-
         calculate_vectors();
-        
-
-
     }
 
     /// \copydoc Fact.parseFact(ScrollFact)
@@ -160,7 +149,7 @@ protected override bool EquivalentWrapped(CuboidFact f1, CuboidFact f2){
 
     protected override Fact _ReInitializeMe(Dictionary<string, string> old_to_new){
         
-        return new CuboidFact(this.PidR, this.PidT);
+        return new CuboidFact(old_to_new[this.PidR], old_to_new[this.PidT]);
 
     }
 
diff --git a/Assets/Scripts/InteractionEngine/FactHandling/Facts/CylinderFact.cs b/Assets/Scripts/InteractionEngine/FactHandling/Facts/CylinderFact.cs
index 607bc606..cee1661d 100644
--- a/Assets/Scripts/InteractionEngine/FactHandling/Facts/CylinderFact.cs
+++ b/Assets/Scripts/InteractionEngine/FactHandling/Facts/CylinderFact.cs
@@ -11,25 +11,22 @@
 /// </summary>
 public class CylinderFact : FactWrappedCRTP<CylinderFact>
 {
-
-
     //used points
     public string PidM, PidE, PidT;
-    public Vector3 M, E, T;
-    public float Volume = 0.0F;
-    public float Radius = 0.0F;
-    public float Height = 0.0F;
 
+    [JsonIgnore] public Vector3 M, E, T;
+    [JsonIgnore] public float Volume = 0.0F;
+    [JsonIgnore] public float Radius = 0.0F;
+    [JsonIgnore] public float Height = 0.0F;
 
-    public PointFact GetM {get =>  (PointFact)FactRecorder.AllFacts[PidM];}
-    public PointFact GetE {get =>  (PointFact)FactRecorder.AllFacts[PidE];}
-    public PointFact GetT {get =>  (PointFact)FactRecorder.AllFacts[PidT];}
+    [JsonIgnore] public PointFact GetM {get =>  (PointFact)FactRecorder.AllFacts[PidM];}
+    [JsonIgnore] public PointFact GetE {get =>  (PointFact)FactRecorder.AllFacts[PidE];}
+    [JsonIgnore] public PointFact GetT {get =>  (PointFact)FactRecorder.AllFacts[PidT];}
 
     protected void calculate_vectors(){
-
-        M = ((PointFact)FactRecorder.AllFacts[PidM]).Point + Vector3.zero;
-        E = ((PointFact)FactRecorder.AllFacts[PidE]).Point + Vector3.zero;
-        T = ((PointFact)FactRecorder.AllFacts[PidT]).Point + Vector3.zero;
+        M = GetM.Point + Vector3.zero;
+        E = GetE.Point + Vector3.zero;
+        T = GetT.Point + Vector3.zero;
         //Rotation = Quaternion.LookRotation(forward, new Vector3(1.0F, 0.0F, 0.0F));
 
         Position = T;
@@ -44,8 +41,6 @@ protected void calculate_vectors(){
         Rotation = Quaternion.LookRotation(rightvector, bottomnormal);
 
         Volume = Mathf.PI * Radius * Radius * Height;
-
-        
     }
 
     public CylinderFact() : base(){
@@ -53,7 +48,8 @@ public CylinderFact() : base(){
         this.PidE = null;
         this.PidT = null;
     }
-    [JsonConstructor]
+
+    // [JsonConstructor]
     public CylinderFact( string PidM, string PidE, string PidT) : base()
     {
         this.PidM = PidM;
@@ -96,8 +92,6 @@ public CylinderFact(string PidM, string PidE, string PidT, SOMDoc ServerDefiniti
         string PidE = pointE.uri;
         string PidT = pointT.uri;
 
-        
-
         ret.Add(new CylinderFact(PidM, PidE, PidT));
 
         //ParsingDictionary.parseTermsToId.TryAdd(defines.ToString(), fact.@ref.uri);
@@ -139,7 +133,7 @@ public bool isEqual(CylinderFact f2){
 
     protected override Fact _ReInitializeMe(Dictionary<string, string> old_to_new){
         
-        return new CylinderFact(this.PidM, this.PidE, this.PidT);
+        return new CylinderFact(old_to_new[this.PidM], old_to_new[this.PidE], old_to_new[this.PidT]);
 
     }
 
diff --git a/Assets/Scripts/InteractionEngine/FactHandling/Facts/PrismFact.cs b/Assets/Scripts/InteractionEngine/FactHandling/Facts/PrismFact.cs
index 4050f8d7..972c14fa 100644
--- a/Assets/Scripts/InteractionEngine/FactHandling/Facts/PrismFact.cs
+++ b/Assets/Scripts/InteractionEngine/FactHandling/Facts/PrismFact.cs
@@ -12,45 +12,40 @@
 /// </summary>
 public class PrismFact : FactWrappedCRTP<PrismFact>
 {
-
-
     //used points
     public string PidT, PidD;
 
-    public Vector3 A, B, C, a, b, c, D;
-
-    public float cPosition;
-
-    public float Volume = 0.0F;
+    [JsonIgnore] public Vector3 A, B, C, a, b, c, D;
+    [JsonIgnore] public float cPosition;
+    [JsonIgnore] public float Volume = 0.0F;
 
+    [JsonIgnore] public TriangleFact2 GetT {get =>  (TriangleFact2)FactRecorder.AllFacts[PidT];}
+    [JsonIgnore] public PointFact GetD {get =>  (PointFact)FactRecorder.AllFacts[PidD];}
 
-
-    public TriangleFact2 GetT {get =>  (TriangleFact2)FactRecorder.AllFacts[PidT];}
-    public PointFact GetD {get =>  (PointFact)FactRecorder.AllFacts[PidD];}
     protected void calculate_vectors(){
-
-        A = ((TriangleFact2)FactRecorder.AllFacts[PidT]).A + Vector3.zero;
-        B = ((TriangleFact2)FactRecorder.AllFacts[PidT]).B + Vector3.zero;
-        C = ((TriangleFact2)FactRecorder.AllFacts[PidT]).C + Vector3.zero;
-        a = ((TriangleFact2)FactRecorder.AllFacts[PidT]).a + Vector3.zero;
-        b = ((TriangleFact2)FactRecorder.AllFacts[PidT]).b + Vector3.zero;
-        c = ((TriangleFact2)FactRecorder.AllFacts[PidT]).c + Vector3.zero;
-        D = ((PointFact)FactRecorder.AllFacts[PidD]).Point + Vector3.zero;
+        A = GetT.A + Vector3.zero;
+        B = GetT.B + Vector3.zero;
+        C = GetT.C + Vector3.zero;
+        a = GetT.a + Vector3.zero;
+        b = GetT.b + Vector3.zero;
+        c = GetT.c + Vector3.zero;
+        D = GetD.Point + Vector3.zero;
 
         cPosition = Vector3.Distance(A, c) / Vector3.Distance(A, B);
 
-        Volume = ((TriangleFact2)FactRecorder.AllFacts[PidT]).Area * Vector3.Distance(A, D);
+        Volume = GetT.Area * Vector3.Distance(A, D);
 
-        Position = ((TriangleFact2)FactRecorder.AllFacts[PidT]).Position;
+        Position = GetT.Position;
 
-        Rotation = ((TriangleFact2)FactRecorder.AllFacts[PidT]).Rotation;
+        Rotation = GetT.Rotation;
     }
 
     public PrismFact() : base(){
         this.PidT = null;
         this.PidD = null;
     }
-    [JsonConstructor]
+
+    // [JsonConstructor]
     public PrismFact( string PidT, string PidD) : base()
     {
         this.PidT = PidT;
@@ -119,7 +114,7 @@ protected override bool EquivalentWrapped(PrismFact p1, PrismFact p2){
     }
 
     protected override Fact _ReInitializeMe(Dictionary<string, string> old_to_new){
-        return new PrismFact(this.PidT, this.PidD);
+        return new PrismFact(old_to_new[this.PidT], old_to_new[this.PidD]);
     }
 
     public override MMTFact MakeMMTDeclaration()
diff --git a/Assets/Scripts/InteractionEngine/FactHandling/Facts/PyramidFact.cs b/Assets/Scripts/InteractionEngine/FactHandling/Facts/PyramidFact.cs
index 0cd82299..acd3fc89 100644
--- a/Assets/Scripts/InteractionEngine/FactHandling/Facts/PyramidFact.cs
+++ b/Assets/Scripts/InteractionEngine/FactHandling/Facts/PyramidFact.cs
@@ -12,24 +12,18 @@
 /// </summary>
 public class PyramidFact : FactWrappedCRTP<PyramidFact>
 {
-
-
     //used points
     public string PidR, PidD;
 
-    public Vector3 A, B, C, M, D, D_offset;
-
-    public float ab;
-    public float bc;
-
-    public float Volume = 0.0F;
+    [JsonIgnore] public Vector3 A, B, C, M, D, D_offset;
+    [JsonIgnore] public float ab;
+    [JsonIgnore] public float bc;
+    [JsonIgnore] public float Volume = 0.0F;
 
+    [JsonIgnore] public RectangleFact GetR {get =>  (RectangleFact)FactRecorder.AllFacts[PidR];}
+    [JsonIgnore] public PointFact GetD {get =>  (PointFact)FactRecorder.AllFacts[PidD];}
 
-
-    public RectangleFact GetR {get =>  (RectangleFact)FactRecorder.AllFacts[PidR];}
-    public PointFact GetD {get =>  (PointFact)FactRecorder.AllFacts[PidD];}
     protected void calculate_vectors(){
-
         A = GetR.A + Vector3.zero;
         B = GetR.B + Vector3.zero;
         C = GetR.C + Vector3.zero;
@@ -69,7 +63,8 @@ public PyramidFact() : base(){
         this.PidR = null;
         this.PidD = null;
     }
-    [JsonConstructor]
+
+    // [JsonConstructor]
     public PyramidFact( string PidT, string PidD) : base()
     {
         this.PidR = PidT;
@@ -138,7 +133,7 @@ protected override bool EquivalentWrapped(PyramidFact p1, PyramidFact p2){
     }
 
     protected override Fact _ReInitializeMe(Dictionary<string, string> old_to_new){
-        return new PyramidFact(this.PidR, this.PidD);
+        return new PyramidFact(old_to_new[this.PidR], old_to_new[this.PidD]);
     }
 
     public override MMTFact MakeMMTDeclaration()
diff --git a/Assets/Scripts/InteractionEngine/FactHandling/Facts/RectangleFact.cs b/Assets/Scripts/InteractionEngine/FactHandling/Facts/RectangleFact.cs
index 8bb45240..e9f2c535 100644
--- a/Assets/Scripts/InteractionEngine/FactHandling/Facts/RectangleFact.cs
+++ b/Assets/Scripts/InteractionEngine/FactHandling/Facts/RectangleFact.cs
@@ -11,25 +11,20 @@
 /// </summary>
 public class RectangleFact : FactWrappedCRTP<RectangleFact>
 {
-
-
     //used points
     public string PidA, PidB, PidC;
 
-    public Vector3 A, B, C, D;
-
-    public float Area = 0.0F;
+    [JsonIgnore] public Vector3 A, B, C, D;
+    [JsonIgnore] public float Area = 0.0F;
 
+    [JsonIgnore] public PointFact GetA {get =>  (PointFact)FactRecorder.AllFacts[PidA];}
+    [JsonIgnore] public PointFact GetB {get =>  (PointFact)FactRecorder.AllFacts[PidB];}
+    [JsonIgnore] public PointFact GetC {get =>  (PointFact)FactRecorder.AllFacts[PidC];}
 
-
-    public PointFact GetA {get =>  (PointFact)FactRecorder.AllFacts[PidA];}
-    public PointFact GetB {get =>  (PointFact)FactRecorder.AllFacts[PidB];}
-    public PointFact GetC {get =>  (PointFact)FactRecorder.AllFacts[PidC];}
-    protected void calculate_vectors(){
-
-        A = ((PointFact)FactRecorder.AllFacts[PidA]).Point + Vector3.zero;
-        B = ((PointFact)FactRecorder.AllFacts[PidB]).Point + Vector3.zero;
-        C = ((PointFact)FactRecorder.AllFacts[PidC]).Point + Vector3.zero;
+    private void calculate_vectors(){
+        A = GetA.Point + Vector3.zero;
+        B = GetB.Point + Vector3.zero;
+        C = GetC.Point + Vector3.zero;
         D = (A - B) + C;
 
         Area = (Vector3.Distance(A, B) * Vector3.Distance(B, C));
@@ -89,7 +84,8 @@ public RectangleFact() : base(){
         this.PidB = null;
         this.PidC = null;
     }
-    [JsonConstructor]
+
+    // [JsonConstructor]
     public RectangleFact( string PidA, string PidB, string PidC) : base()
     {
         this.PidA = PidA;
@@ -176,7 +172,7 @@ public bool isEqual(RectangleFact f2){
 
     protected override Fact _ReInitializeMe(Dictionary<string, string> old_to_new){
         
-        return new RectangleFact(this.PidA, this.PidB, this.PidC);
+        return new RectangleFact(old_to_new[this.PidA], old_to_new[this.PidB], old_to_new[this.PidC]);
 
     }
 
diff --git a/Assets/Scripts/InteractionEngine/FactHandling/Facts/SphereFact.cs b/Assets/Scripts/InteractionEngine/FactHandling/Facts/SphereFact.cs
index 0b1aa356..c242255c 100644
--- a/Assets/Scripts/InteractionEngine/FactHandling/Facts/SphereFact.cs
+++ b/Assets/Scripts/InteractionEngine/FactHandling/Facts/SphereFact.cs
@@ -11,26 +11,19 @@
 /// </summary>
 public class SphereFact : FactWrappedCRTP<SphereFact>
 {
-
-
     //used points
     public string PidM, PidT;
 
-    public Vector3 M, T;
+    [JsonIgnore] public Vector3 M, T;
+    [JsonIgnore] public float Volume = 0.0F;
+    [JsonIgnore] public float Radius = 0.0F;
 
-    public float Volume = 0.0F;
-    public float Radius = 0.0F;
+    [JsonIgnore] public PointFact GetM {get =>  (PointFact)FactRecorder.AllFacts[PidM];}
+    [JsonIgnore] public PointFact GetT {get =>  (PointFact)FactRecorder.AllFacts[PidT];}
 
-
-    public PointFact GetM {get =>  (PointFact)FactRecorder.AllFacts[PidM];}
-    public PointFact GetT {get =>  (PointFact)FactRecorder.AllFacts[PidT];}
     protected void calculate_vectors(){
-
-        M = ((PointFact)FactRecorder.AllFacts[PidM]).Point + Vector3.zero;
-        T = ((PointFact)FactRecorder.AllFacts[PidT]).Point + Vector3.zero;
-
-        Debug.Log(M);
-        Debug.Log(T);
+        M = GetM.Point + Vector3.zero;
+        T = GetT.Point + Vector3.zero;
 
         Radius = Vector3.Distance(M, T);
         Volume = 4/3 * (Mathf.PI) * (Radius * Radius * Radius);
@@ -41,14 +34,14 @@ protected void calculate_vectors(){
         LocalScale = scale;
 
         Position =  M;
-        
     }
 
     public SphereFact() : base(){
         this.PidM = null;
         this.PidT = null;
     }
-    [JsonConstructor]
+
+    // [JsonConstructor]
     public SphereFact( string PidM, string PidT) : base()
     {
         this.PidM = PidM;
@@ -129,7 +122,7 @@ public bool isEqual(SphereFact f2){
 
     protected override Fact _ReInitializeMe(Dictionary<string, string> old_to_new){
         
-        return new SphereFact(this.PidM, this.PidT);
+        return new SphereFact(old_to_new[this.PidM], old_to_new[this.PidT]);
 
     }
 
diff --git a/Assets/Scripts/InteractionEngine/FactHandling/Facts/TriangleFact2.cs b/Assets/Scripts/InteractionEngine/FactHandling/Facts/TriangleFact2.cs
index 24b29c2d..42ceda7e 100644
--- a/Assets/Scripts/InteractionEngine/FactHandling/Facts/TriangleFact2.cs
+++ b/Assets/Scripts/InteractionEngine/FactHandling/Facts/TriangleFact2.cs
@@ -16,22 +16,18 @@ public class TriangleFact2 : FactWrappedCRTP<TriangleFact2>
     //used points
     public string PidA, PidB, PidC;
 
-    public Vector3 A, B, C, a, b, c;
+    [JsonIgnore]  public Vector3 A, B, C, a, b, c;
+    [JsonIgnore]  public float cPosition;
+    [JsonIgnore] public float Area = 0.0F;
 
-    public float cPosition;
+    [JsonIgnore] public PointFact GetA {get =>  (PointFact)FactRecorder.AllFacts[PidA];}
+    [JsonIgnore] public PointFact GetB {get =>  (PointFact)FactRecorder.AllFacts[PidB];}
+    [JsonIgnore] public PointFact GetC {get =>  (PointFact)FactRecorder.AllFacts[PidC];}
 
-    public float Area = 0.0F;
-
-
-
-    public PointFact GetA {get =>  (PointFact)FactRecorder.AllFacts[PidA];}
-    public PointFact GetB {get =>  (PointFact)FactRecorder.AllFacts[PidB];}
-    public PointFact GetC {get =>  (PointFact)FactRecorder.AllFacts[PidC];}
     protected void calculate_vectors(){
-
-        A = ((PointFact)FactRecorder.AllFacts[PidA]).Point + Vector3.zero;
-        B = ((PointFact)FactRecorder.AllFacts[PidB]).Point + Vector3.zero;
-        C = ((PointFact)FactRecorder.AllFacts[PidC]).Point + Vector3.zero;
+        A = GetA.Point + Vector3.zero;
+        B = GetB.Point + Vector3.zero;
+        C = GetC.Point + Vector3.zero;
         a = B + Vector3.Project(A - B, C - B);
         b = C + Vector3.Project(B - C, A - C);
         c = A + Vector3.Project(C - A, B - A);
@@ -110,7 +106,8 @@ public TriangleFact2() : base(){
         this.PidB = null;
         this.PidC = null;
     }
-    [JsonConstructor]
+
+    // [JsonConstructor]
     public TriangleFact2( string PidA, string PidB, string PidC) : base()
     {
         this.PidA = PidA;
@@ -184,7 +181,7 @@ protected override bool EquivalentWrapped(TriangleFact2 t1, TriangleFact2 t2){
 
     protected override Fact _ReInitializeMe(Dictionary<string, string> old_to_new){
         
-        return new TriangleFact2(this.PidA, this.PidB, this.PidC);
+        return new TriangleFact2(old_to_new[this.PidA], old_to_new[this.PidB], old_to_new[this.PidC]);
 
     }
 
-- 
GitLab