Skip to content
Snippets Groups Projects
Commit 85082b1e authored by MaZiFAU's avatar MaZiFAU
Browse files

First attempted at ListFact

parent 436df6b7
No related branches found
No related tags found
No related merge requests found
...@@ -147,7 +147,7 @@ public AngleFact(string pid1, string pid2, string pid3, FactOrganizer organizer) ...@@ -147,7 +147,7 @@ public AngleFact(string pid1, string pid2, string pid3, FactOrganizer organizer)
public AngleFact(string Pid1, string Pid2, string Pid3, float angle, string backendURI, FactOrganizer organizer) public AngleFact(string Pid1, string Pid2, string Pid3, float angle, string backendURI, FactOrganizer organizer)
: base(Pid1, Pid2, Pid3, angle, backendURI, organizer) { } : base(Pid1, Pid2, Pid3, angle, backendURI, organizer) { }
protected override MMTDeclaration MakeMMTDeclaration() public override MMTDeclaration MakeMMTDeclaration()
{ {
SOMDoc lhs = SOMDoc lhs =
new OMA( new OMA(
...@@ -239,7 +239,7 @@ public RightAngleFact(string pid1, string pid2, string pid3, FactOrganizer organ ...@@ -239,7 +239,7 @@ public RightAngleFact(string pid1, string pid2, string pid3, FactOrganizer organ
public RightAngleFact(string Pid1, string Pid2, string Pid3, string backendURI, FactOrganizer organizer) public RightAngleFact(string Pid1, string Pid2, string Pid3, string backendURI, FactOrganizer organizer)
: base(Pid1, Pid2, Pid3, 90f, backendURI, organizer) { } : base(Pid1, Pid2, Pid3, 90f, backendURI, organizer) { }
protected override MMTDeclaration MakeMMTDeclaration() public override MMTDeclaration MakeMMTDeclaration()
{ {
SOMDoc tp = SOMDoc tp =
new OMA( new OMA(
......
...@@ -137,7 +137,7 @@ public LineFact(string pid1, string pid2, FactOrganizer organizer) : base(pid1, ...@@ -137,7 +137,7 @@ public LineFact(string pid1, string pid2, FactOrganizer organizer) : base(pid1,
SendToMMT(); SendToMMT();
} }
protected override MMTDeclaration MakeMMTDeclaration() public override MMTDeclaration MakeMMTDeclaration()
{ {
SOMDoc lhs = SOMDoc lhs =
new OMA( new OMA(
...@@ -201,7 +201,7 @@ public RayFact(string pid1, string pid2, FactOrganizer organizer) : base(pid1, p ...@@ -201,7 +201,7 @@ public RayFact(string pid1, string pid2, FactOrganizer organizer) : base(pid1, p
SendToMMT(); SendToMMT();
} }
protected override MMTDeclaration MakeMMTDeclaration() public override MMTDeclaration MakeMMTDeclaration()
{ {
SOMDoc type = new OMS(MMT_OMS_URI.LineType); SOMDoc type = new OMS(MMT_OMS_URI.LineType);
SOMDoc defines = SOMDoc defines =
......
...@@ -56,7 +56,7 @@ public static class ParsingDictionary ...@@ -56,7 +56,7 @@ public static class ParsingDictionary
{ MMT_OMS_URI.EqualityCircles, { MMT_OMS_URI.EqualityCircles,
EqualCirclesFact.parseFact }, EqualCirclesFact.parseFact },
{ MMT_OMS_URI.UnEqualityCircles, { MMT_OMS_URI.UnEqualityCircles,
UnEqualCirclesFact.parseFact } UnEqualCirclesFact.parseFact },
}; };
// TODO: get rid of this // TODO: get rid of this
...@@ -214,7 +214,7 @@ protected set ...@@ -214,7 +214,7 @@ protected set
_Position = value; _Position = value;
} }
} }
private Vector3 _Position; private Vector3 _Position = Vector3.zero;
[JsonIgnore] [JsonIgnore]
public Quaternion Rotation public Quaternion Rotation
...@@ -231,7 +231,7 @@ protected set ...@@ -231,7 +231,7 @@ protected set
_Rotation = value; _Rotation = value;
} }
} }
private Quaternion _Rotation; private Quaternion _Rotation = Quaternion.identity;
[JsonIgnore] [JsonIgnore]
public Vector3 LocalScale public Vector3 LocalScale
...@@ -248,7 +248,7 @@ protected set ...@@ -248,7 +248,7 @@ protected set
_LocalScale = value; _LocalScale = value;
} }
} }
private Vector3 _LocalScale; private Vector3 _LocalScale = Vector3.one;
/// <summary> /// <summary>
/// Only being used by [JsonReader](https://www.newtonsoft.com/json/help/html/T_Newtonsoft_Json_JsonReader.htm) to initiate empty \ref Fact "Facts". /// Only being used by [JsonReader](https://www.newtonsoft.com/json/help/html/T_Newtonsoft_Json_JsonReader.htm) to initiate empty \ref Fact "Facts".
...@@ -323,7 +323,7 @@ public bool rename(string newLabel) ...@@ -323,7 +323,7 @@ public bool rename(string newLabel)
protected abstract void RecalculateTransform(); protected abstract void RecalculateTransform();
protected abstract MMTDeclaration MakeMMTDeclaration(); public abstract MMTDeclaration MakeMMTDeclaration();
/// <summary> /// <summary>
/// Frees ressources e.g. <see cref="Label"/> and will eventually delete %Fact Server-Side in far-near future when feature is supported. /// Frees ressources e.g. <see cref="Label"/> and will eventually delete %Fact Server-Side in far-near future when feature is supported.
...@@ -611,7 +611,7 @@ protected override bool EquivalentWrapped(PointFact f1, PointFact f2) ...@@ -611,7 +611,7 @@ protected override bool EquivalentWrapped(PointFact f1, PointFact f2)
protected override Fact _ReInitializeMe(Dictionary<string, string> old_to_new, FactOrganizer organizer) protected override Fact _ReInitializeMe(Dictionary<string, string> old_to_new, FactOrganizer organizer)
=> new PointFact(this.Point, this.Normal, organizer); => new PointFact(this.Point, this.Normal, organizer);
protected override MMTDeclaration MakeMMTDeclaration() public override MMTDeclaration MakeMMTDeclaration()
{ {
SOMDoc tp = new OMS(MMT_OMS_URI.Point); SOMDoc tp = new OMS(MMT_OMS_URI.Point);
SOMDoc df = new OMA( SOMDoc df = new OMA(
...@@ -733,7 +733,7 @@ protected override bool EquivalentWrapped(OnLineFact f1, OnLineFact f2) ...@@ -733,7 +733,7 @@ protected override bool EquivalentWrapped(OnLineFact f1, OnLineFact f2)
protected override Fact _ReInitializeMe(Dictionary<string, string> old_to_new, FactOrganizer organizer) protected override Fact _ReInitializeMe(Dictionary<string, string> old_to_new, FactOrganizer organizer)
=> new OnLineFact(old_to_new[this.Pid], old_to_new[this.Rid], organizer); => new OnLineFact(old_to_new[this.Pid], old_to_new[this.Rid], organizer);
protected override MMTDeclaration MakeMMTDeclaration() public override MMTDeclaration MakeMMTDeclaration()
{ {
SOMDoc tp = new OMA( SOMDoc tp = new OMA(
new OMS(MMT_OMS_URI.Ded), new OMS(MMT_OMS_URI.Ded),
...@@ -828,7 +828,7 @@ public ParallelLineFact(string Lid1, string Lid2, string backendURI, FactOrganiz ...@@ -828,7 +828,7 @@ public ParallelLineFact(string Lid1, string Lid2, string backendURI, FactOrganiz
protected override string generateLabel() protected override string generateLabel()
=> Ray1.Label + "||" + Ray2.Label; => Ray1.Label + "||" + Ray2.Label;
protected override MMTDeclaration MakeMMTDeclaration() public override MMTDeclaration MakeMMTDeclaration()
{ {
SOMDoc tp = new OMA( SOMDoc tp = new OMA(
new OMS(MMT_OMS_URI.Ded), new OMS(MMT_OMS_URI.Ded),
...@@ -1000,7 +1000,7 @@ protected override string generateLabel() ...@@ -1000,7 +1000,7 @@ protected override string generateLabel()
/// <param name="p2URI"> <see cref="Pid2"/></param> /// <param name="p2URI"> <see cref="Pid2"/></param>
/// <param name="radius"> <see cref="radius"/></param> /// <param name="radius"> <see cref="radius"/></param>
/// <returns>struct for <see cref="AddFactResponse"/></returns> /// <returns>struct for <see cref="AddFactResponse"/></returns>
protected override MMTDeclaration MakeMMTDeclaration() public override MMTDeclaration MakeMMTDeclaration()
{ {
List<SOMDoc> outerArguments = new List<SOMDoc> List<SOMDoc> outerArguments = new List<SOMDoc>
{ {
...@@ -1147,7 +1147,7 @@ protected override bool EquivalentWrapped(OnCircleFact c1, OnCircleFact c2) ...@@ -1147,7 +1147,7 @@ protected override bool EquivalentWrapped(OnCircleFact c1, OnCircleFact c2)
protected override Fact _ReInitializeMe(Dictionary<string, string> old_to_new, FactOrganizer organizer) protected override Fact _ReInitializeMe(Dictionary<string, string> old_to_new, FactOrganizer organizer)
=> new OnCircleFact(old_to_new[this.Pid], old_to_new[this.Cid], organizer); => new OnCircleFact(old_to_new[this.Pid], old_to_new[this.Cid], organizer);
protected override MMTDeclaration MakeMMTDeclaration() public override MMTDeclaration MakeMMTDeclaration()
{ {
SOMDoc tp = SOMDoc tp =
new OMA( new OMA(
...@@ -1285,7 +1285,7 @@ public AngleCircleLineFact(string Cid1, string Rid2, float angle, string backend ...@@ -1285,7 +1285,7 @@ public AngleCircleLineFact(string Cid1, string Rid2, float angle, string backend
protected override string generateLabel() protected override string generateLabel()
=> "∠" + Circle.Label + Ray.Label; => "∠" + Circle.Label + Ray.Label;
protected override MMTDeclaration MakeMMTDeclaration() public override MMTDeclaration MakeMMTDeclaration()
{ {
SOMDoc lhs = SOMDoc lhs =
new OMA( new OMA(
...@@ -1393,7 +1393,7 @@ protected override string generateLabel() ...@@ -1393,7 +1393,7 @@ protected override string generateLabel()
/// <param name="rad"> see <see cref="rad"/></param> /// <param name="rad"> see <see cref="rad"/></param>
/// <param name="c1URI"> see <see cref="Cid1"/></param> /// <param name="c1URI"> see <see cref="Cid1"/></param>
protected override MMTDeclaration MakeMMTDeclaration() public override MMTDeclaration MakeMMTDeclaration()
{ {
SOMDoc lhs = SOMDoc lhs =
new OMA( new OMA(
...@@ -1496,7 +1496,7 @@ public AreaCircleFact(string Cid1, string backendURI, FactOrganizer organizer) : ...@@ -1496,7 +1496,7 @@ public AreaCircleFact(string Cid1, string backendURI, FactOrganizer organizer) :
protected override string generateLabel() protected override string generateLabel()
=> "A(" + Circle.Label + ")"; => "A(" + Circle.Label + ")";
protected override MMTDeclaration MakeMMTDeclaration() public override MMTDeclaration MakeMMTDeclaration()
{ {
SOMDoc lhs = SOMDoc lhs =
new OMA( new OMA(
...@@ -1622,7 +1622,7 @@ public ConeVolumeFact(string Cid1, string Pid1, float volume, string backendURI, ...@@ -1622,7 +1622,7 @@ public ConeVolumeFact(string Cid1, string Pid1, float volume, string backendURI,
protected override string generateLabel() protected override string generateLabel()
=> "V(" + Circle.Label + "," + Point.Label + ")"; => "V(" + Circle.Label + "," + Point.Label + ")";
protected override MMTDeclaration MakeMMTDeclaration() public override MMTDeclaration MakeMMTDeclaration()
{ {
SOMDoc lhs = SOMDoc lhs =
new OMA( new OMA(
...@@ -1758,7 +1758,7 @@ public OrthogonalCircleLineFact(string Cid1, string Lid1, string backendURI, Fac ...@@ -1758,7 +1758,7 @@ public OrthogonalCircleLineFact(string Cid1, string Lid1, string backendURI, Fac
protected override string generateLabel() protected override string generateLabel()
=> Circle.Label + "⊥" + Ray.Label; => Circle.Label + "⊥" + Ray.Label;
protected override MMTDeclaration MakeMMTDeclaration() public override MMTDeclaration MakeMMTDeclaration()
{ {
SOMDoc tp = new OMA( SOMDoc tp = new OMA(
new OMS(MMT_OMS_URI.Ded), new OMS(MMT_OMS_URI.Ded),
...@@ -1894,7 +1894,7 @@ public TruncatedConeVolumeFact(string Cid1, string Cid2, float volume, string un ...@@ -1894,7 +1894,7 @@ public TruncatedConeVolumeFact(string Cid1, string Cid2, float volume, string un
protected override string generateLabel() protected override string generateLabel()
=> "V(" + Circle1.Label + "," + Circle2.Label + ")"; => "V(" + Circle1.Label + "," + Circle2.Label + ")";
protected override MMTDeclaration MakeMMTDeclaration() public override MMTDeclaration MakeMMTDeclaration()
{ {
SOMDoc lhs = SOMDoc lhs =
new OMA( new OMA(
...@@ -2028,7 +2028,7 @@ public CylinderVolumeFact(string Cid1, string Cid2, float volume, string eqProof ...@@ -2028,7 +2028,7 @@ public CylinderVolumeFact(string Cid1, string Cid2, float volume, string eqProof
protected override string generateLabel() protected override string generateLabel()
=> "V(" + Circle1.Label + "," + Circle2.Label + ")"; => "V(" + Circle1.Label + "," + Circle2.Label + ")";
protected override MMTDeclaration MakeMMTDeclaration() public override MMTDeclaration MakeMMTDeclaration()
{ {
SOMDoc lhs = SOMDoc lhs =
new OMA( new OMA(
...@@ -2145,7 +2145,7 @@ public EqualCirclesFact(string Cid1, string Cid2, string backendURI, FactOrganiz ...@@ -2145,7 +2145,7 @@ public EqualCirclesFact(string Cid1, string Cid2, string backendURI, FactOrganiz
protected override string generateLabel() protected override string generateLabel()
=> Circle1.Label + " ≠ " + Circle2.Label; => Circle1.Label + " ≠ " + Circle2.Label;
protected override MMTDeclaration MakeMMTDeclaration() public override MMTDeclaration MakeMMTDeclaration()
{ {
SOMDoc tp = new OMA( SOMDoc tp = new OMA(
new OMS(MMT_OMS_URI.Ded), new OMS(MMT_OMS_URI.Ded),
...@@ -2262,7 +2262,7 @@ public UnEqualCirclesFact(string Cid1, string Cid2, string backendURI, FactOrgan ...@@ -2262,7 +2262,7 @@ public UnEqualCirclesFact(string Cid1, string Cid2, string backendURI, FactOrgan
protected override string generateLabel() protected override string generateLabel()
=> Circle1.Label + " = " + Circle2.Label; => Circle1.Label + " = " + Circle2.Label;
protected override MMTDeclaration MakeMMTDeclaration() public override MMTDeclaration MakeMMTDeclaration()
{ {
SOMDoc tp = new OMA( SOMDoc tp = new OMA(
new OMS(MMT_OMS_URI.Ded), new OMS(MMT_OMS_URI.Ded),
...@@ -2293,6 +2293,71 @@ protected override Fact _ReInitializeMe(Dictionary<string, string> old_to_new, F ...@@ -2293,6 +2293,71 @@ protected override Fact _ReInitializeMe(Dictionary<string, string> old_to_new, F
=> new UnEqualCirclesFact(old_to_new[this.Cid1], old_to_new[this.Cid2], organizer); => new UnEqualCirclesFact(old_to_new[this.Cid1], old_to_new[this.Cid2], organizer);
} }
/// <summary>
///
/// </summary>
/// <remarks>Hopefully not needed <see cref="SOMDoc.MakeList(string[], string)"/></remarks>
public class ListFact : FactWrappedCRTP<ListFact>
{
public string[] lids = new string[0];
public string typeURI;
[JsonIgnore]
public Type type => MMT_OMS_URI.OMS_TO_TYPE[typeURI];
protected override bool EquivalentWrapped(ListFact f1, ListFact f2)
=> f1.typeURI == f2.typeURI
&& DependentFactsEquivalent(f1, f2);
public override bool HasDependentFacts
=> true;
protected override string[] GetGetDependentFactIds()
=> lids;
public override MMTDeclaration MakeMMTDeclaration()
{
OMA List = SOMDoc.MakeList(lids, typeURI);
return new MMTSymbolDeclaration(Label, List.applicant, List.applicant);
}
public static List<T> parseFactList<T>(MMTDeclaration decl)
{
if (decl is not MMTSymbolDeclaration mMTSymbol)
return null;
List<T> ret = new();
SOMDoc next_element = mMTSymbol.defines;
while (true)
{
if (next_element is not OMA current_element)
return ret;
switch (current_element.arguments.Count)
{
case 2:
ret.Add((current_element.arguments[1].GetLambdaExpression().Compile() as Func<T>)());
next_element = current_element.arguments[0];
break;
case 0:
case 1:
default:
return ret;
}
}
}
protected override void RecalculateTransform() { }
protected override Fact _ReInitializeMe(Dictionary<string, string> old_to_new, FactOrganizer organizer)
{
throw new NotImplementedException();
}
}
#pragma warning disable // Testing... #pragma warning disable // Testing...
...@@ -2377,7 +2442,7 @@ protected override bool EquivalentWrapped(TestFact f1, TestFact f2) ...@@ -2377,7 +2442,7 @@ protected override bool EquivalentWrapped(TestFact f1, TestFact f2)
protected override Fact _ReInitializeMe(Dictionary<string, string> old_to_new, FactOrganizer organizer) protected override Fact _ReInitializeMe(Dictionary<string, string> old_to_new, FactOrganizer organizer)
=> new TestFact(organizer); => new TestFact(organizer);
protected override MMTDeclaration MakeMMTDeclaration() public override MMTDeclaration MakeMMTDeclaration()
{ {
throw new NotImplementedException(); throw new NotImplementedException();
} }
......
...@@ -57,7 +57,7 @@ protected override bool EquivalentWrapped(FunctionCallFact f1, FunctionCallFact ...@@ -57,7 +57,7 @@ protected override bool EquivalentWrapped(FunctionCallFact f1, FunctionCallFact
&& f1.Function_args.Equivalent(f2.Function_args) && f1.Function_args.Equivalent(f2.Function_args)
)); ));
protected override MMTDeclaration MakeMMTDeclaration() public override MMTDeclaration MakeMMTDeclaration()
{ {
throw new NotImplementedException(); throw new NotImplementedException();
} }
...@@ -173,7 +173,7 @@ protected override bool EquivalentWrapped(FunctionFact f1, FunctionFact f2) ...@@ -173,7 +173,7 @@ protected override bool EquivalentWrapped(FunctionFact f1, FunctionFact f2)
protected override Fact _ReInitializeMe(Dictionary<string, string> old_to_new, FactOrganizer organizer) protected override Fact _ReInitializeMe(Dictionary<string, string> old_to_new, FactOrganizer organizer)
=> new FunctionFact(this.Function_SOMDoc.MapURIs(old_to_new), organizer); => new FunctionFact(this.Function_SOMDoc.MapURIs(old_to_new), organizer);
protected override MMTDeclaration MakeMMTDeclaration() public override MMTDeclaration MakeMMTDeclaration()
{ {
throw new NotImplementedException(); throw new NotImplementedException();
} }
...@@ -248,7 +248,7 @@ protected override void RecalculateTransform() ...@@ -248,7 +248,7 @@ protected override void RecalculateTransform()
protected override Fact _ReInitializeMe(Dictionary<string, string> old_to_new, FactOrganizer organizer) protected override Fact _ReInitializeMe(Dictionary<string, string> old_to_new, FactOrganizer organizer)
=> new AttachedPositionFunction(old_to_new[this.fid], this.func_call_ids.Select(id => old_to_new[id]).ToArray(), organizer); => new AttachedPositionFunction(old_to_new[this.fid], this.func_call_ids.Select(id => old_to_new[id]).ToArray(), organizer);
protected override MMTDeclaration MakeMMTDeclaration() public override MMTDeclaration MakeMMTDeclaration()
{ {
throw new NotImplementedException(); throw new NotImplementedException();
} }
......
...@@ -138,8 +138,8 @@ private int[] PrePopulateActiveScroll() ...@@ -138,8 +138,8 @@ private int[] PrePopulateActiveScroll()
{ {
switch (ActiveScroll.@ref) switch (ActiveScroll.@ref)
{ {
case MMT_OMS_URI.ScrollAngleSum: case MMT_OMS_URI.ScrollCannonBall:
return new int[0]; return new int[] { 2 };
default: default:
return new int[0]; return new int[0];
......
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment