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)
public AngleFact(string Pid1, string Pid2, string Pid3, float angle, string backendURI, FactOrganizer organizer)
: base(Pid1, Pid2, Pid3, angle, backendURI, organizer) { }
protected override MMTDeclaration MakeMMTDeclaration()
public override MMTDeclaration MakeMMTDeclaration()
{
SOMDoc lhs =
new OMA(
......@@ -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)
: base(Pid1, Pid2, Pid3, 90f, backendURI, organizer) { }
protected override MMTDeclaration MakeMMTDeclaration()
public override MMTDeclaration MakeMMTDeclaration()
{
SOMDoc tp =
new OMA(
......
......@@ -137,7 +137,7 @@ public LineFact(string pid1, string pid2, FactOrganizer organizer) : base(pid1,
SendToMMT();
}
protected override MMTDeclaration MakeMMTDeclaration()
public override MMTDeclaration MakeMMTDeclaration()
{
SOMDoc lhs =
new OMA(
......@@ -201,7 +201,7 @@ public RayFact(string pid1, string pid2, FactOrganizer organizer) : base(pid1, p
SendToMMT();
}
protected override MMTDeclaration MakeMMTDeclaration()
public override MMTDeclaration MakeMMTDeclaration()
{
SOMDoc type = new OMS(MMT_OMS_URI.LineType);
SOMDoc defines =
......
......@@ -56,7 +56,7 @@ public static class ParsingDictionary
{ MMT_OMS_URI.EqualityCircles,
EqualCirclesFact.parseFact },
{ MMT_OMS_URI.UnEqualityCircles,
UnEqualCirclesFact.parseFact }
UnEqualCirclesFact.parseFact },
};
// TODO: get rid of this
......@@ -214,7 +214,7 @@ protected set
_Position = value;
}
}
private Vector3 _Position;
private Vector3 _Position = Vector3.zero;
[JsonIgnore]
public Quaternion Rotation
......@@ -231,7 +231,7 @@ protected set
_Rotation = value;
}
}
private Quaternion _Rotation;
private Quaternion _Rotation = Quaternion.identity;
[JsonIgnore]
public Vector3 LocalScale
......@@ -248,7 +248,7 @@ protected set
_LocalScale = value;
}
}
private Vector3 _LocalScale;
private Vector3 _LocalScale = Vector3.one;
/// <summary>
/// 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)
protected abstract void RecalculateTransform();
protected abstract MMTDeclaration MakeMMTDeclaration();
public abstract MMTDeclaration MakeMMTDeclaration();
/// <summary>
/// Frees ressources e.g. <see cref="Label"/> and will eventually delete %Fact Server-Side in far-near future when feature is supported.
......@@ -423,7 +423,7 @@ public void SendToMMT()
_SendAdd(
CommunicationEvents.ServerAdress + "/fact/add",
mmtDecl.ToJson()
//,(string uri) => _SendURICallback(mmtDecl, uri)
//,(string uri) => _SendURICallback(mmtDecl, uri)
);//);
//return;
......@@ -432,8 +432,8 @@ public void SendToMMT()
//{
// _URI = uri;
if (mmtDecl is MMTSymbolDeclaration mMTSymbol && mMTSymbol.defines != null)
ParsingDictionary.parseTermsToId[mMTSymbol.defines.ToString()] = _URI;
if (mmtDecl is MMTSymbolDeclaration mMTSymbol && mMTSymbol.defines != null)
ParsingDictionary.parseTermsToId[mMTSymbol.defines.ToString()] = _URI;
//}
/*IEnumerator*/
......@@ -611,7 +611,7 @@ protected override bool EquivalentWrapped(PointFact f1, PointFact f2)
protected override Fact _ReInitializeMe(Dictionary<string, string> old_to_new, FactOrganizer 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 df = new OMA(
......@@ -733,7 +733,7 @@ protected override bool EquivalentWrapped(OnLineFact f1, OnLineFact f2)
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);
protected override MMTDeclaration MakeMMTDeclaration()
public override MMTDeclaration MakeMMTDeclaration()
{
SOMDoc tp = new OMA(
new OMS(MMT_OMS_URI.Ded),
......@@ -828,7 +828,7 @@ public ParallelLineFact(string Lid1, string Lid2, string backendURI, FactOrganiz
protected override string generateLabel()
=> Ray1.Label + "||" + Ray2.Label;
protected override MMTDeclaration MakeMMTDeclaration()
public override MMTDeclaration MakeMMTDeclaration()
{
SOMDoc tp = new OMA(
new OMS(MMT_OMS_URI.Ded),
......@@ -1000,7 +1000,7 @@ protected override string generateLabel()
/// <param name="p2URI"> <see cref="Pid2"/></param>
/// <param name="radius"> <see cref="radius"/></param>
/// <returns>struct for <see cref="AddFactResponse"/></returns>
protected override MMTDeclaration MakeMMTDeclaration()
public override MMTDeclaration MakeMMTDeclaration()
{
List<SOMDoc> outerArguments = new List<SOMDoc>
{
......@@ -1147,7 +1147,7 @@ protected override bool EquivalentWrapped(OnCircleFact c1, OnCircleFact c2)
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);
protected override MMTDeclaration MakeMMTDeclaration()
public override MMTDeclaration MakeMMTDeclaration()
{
SOMDoc tp =
new OMA(
......@@ -1285,7 +1285,7 @@ public AngleCircleLineFact(string Cid1, string Rid2, float angle, string backend
protected override string generateLabel()
=> "∠" + Circle.Label + Ray.Label;
protected override MMTDeclaration MakeMMTDeclaration()
public override MMTDeclaration MakeMMTDeclaration()
{
SOMDoc lhs =
new OMA(
......@@ -1393,7 +1393,7 @@ protected override string generateLabel()
/// <param name="rad"> see <see cref="rad"/></param>
/// <param name="c1URI"> see <see cref="Cid1"/></param>
protected override MMTDeclaration MakeMMTDeclaration()
public override MMTDeclaration MakeMMTDeclaration()
{
SOMDoc lhs =
new OMA(
......@@ -1496,7 +1496,7 @@ public AreaCircleFact(string Cid1, string backendURI, FactOrganizer organizer) :
protected override string generateLabel()
=> "A(" + Circle.Label + ")";
protected override MMTDeclaration MakeMMTDeclaration()
public override MMTDeclaration MakeMMTDeclaration()
{
SOMDoc lhs =
new OMA(
......@@ -1622,7 +1622,7 @@ public ConeVolumeFact(string Cid1, string Pid1, float volume, string backendURI,
protected override string generateLabel()
=> "V(" + Circle.Label + "," + Point.Label + ")";
protected override MMTDeclaration MakeMMTDeclaration()
public override MMTDeclaration MakeMMTDeclaration()
{
SOMDoc lhs =
new OMA(
......@@ -1758,7 +1758,7 @@ public OrthogonalCircleLineFact(string Cid1, string Lid1, string backendURI, Fac
protected override string generateLabel()
=> Circle.Label + "⊥" + Ray.Label;
protected override MMTDeclaration MakeMMTDeclaration()
public override MMTDeclaration MakeMMTDeclaration()
{
SOMDoc tp = new OMA(
new OMS(MMT_OMS_URI.Ded),
......@@ -1894,7 +1894,7 @@ public TruncatedConeVolumeFact(string Cid1, string Cid2, float volume, string un
protected override string generateLabel()
=> "V(" + Circle1.Label + "," + Circle2.Label + ")";
protected override MMTDeclaration MakeMMTDeclaration()
public override MMTDeclaration MakeMMTDeclaration()
{
SOMDoc lhs =
new OMA(
......@@ -2028,7 +2028,7 @@ public CylinderVolumeFact(string Cid1, string Cid2, float volume, string eqProof
protected override string generateLabel()
=> "V(" + Circle1.Label + "," + Circle2.Label + ")";
protected override MMTDeclaration MakeMMTDeclaration()
public override MMTDeclaration MakeMMTDeclaration()
{
SOMDoc lhs =
new OMA(
......@@ -2145,7 +2145,7 @@ public EqualCirclesFact(string Cid1, string Cid2, string backendURI, FactOrganiz
protected override string generateLabel()
=> Circle1.Label + " ≠ " + Circle2.Label;
protected override MMTDeclaration MakeMMTDeclaration()
public override MMTDeclaration MakeMMTDeclaration()
{
SOMDoc tp = new OMA(
new OMS(MMT_OMS_URI.Ded),
......@@ -2262,7 +2262,7 @@ public UnEqualCirclesFact(string Cid1, string Cid2, string backendURI, FactOrgan
protected override string generateLabel()
=> Circle1.Label + " = " + Circle2.Label;
protected override MMTDeclaration MakeMMTDeclaration()
public override MMTDeclaration MakeMMTDeclaration()
{
SOMDoc tp = new OMA(
new OMS(MMT_OMS_URI.Ded),
......@@ -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);
}
/// <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...
......@@ -2377,7 +2442,7 @@ protected override bool EquivalentWrapped(TestFact f1, TestFact f2)
protected override Fact _ReInitializeMe(Dictionary<string, string> old_to_new, FactOrganizer organizer)
=> new TestFact(organizer);
protected override MMTDeclaration MakeMMTDeclaration()
public override MMTDeclaration MakeMMTDeclaration()
{
throw new NotImplementedException();
}
......
......@@ -57,7 +57,7 @@ protected override bool EquivalentWrapped(FunctionCallFact f1, FunctionCallFact
&& f1.Function_args.Equivalent(f2.Function_args)
));
protected override MMTDeclaration MakeMMTDeclaration()
public override MMTDeclaration MakeMMTDeclaration()
{
throw new NotImplementedException();
}
......@@ -173,7 +173,7 @@ protected override bool EquivalentWrapped(FunctionFact f1, FunctionFact f2)
protected override Fact _ReInitializeMe(Dictionary<string, string> old_to_new, FactOrganizer organizer)
=> new FunctionFact(this.Function_SOMDoc.MapURIs(old_to_new), organizer);
protected override MMTDeclaration MakeMMTDeclaration()
public override MMTDeclaration MakeMMTDeclaration()
{
throw new NotImplementedException();
}
......@@ -248,7 +248,7 @@ protected override void RecalculateTransform()
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);
protected override MMTDeclaration MakeMMTDeclaration()
public override MMTDeclaration MakeMMTDeclaration()
{
throw new NotImplementedException();
}
......
......@@ -138,8 +138,8 @@ private int[] PrePopulateActiveScroll()
{
switch (ActiveScroll.@ref)
{
case MMT_OMS_URI.ScrollAngleSum:
return new int[0];
case MMT_OMS_URI.ScrollCannonBall:
return new int[] { 2 };
default:
return new int[0];
......
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment