<aside> 💡 This part is still experimental and not completely developed. Also, not working yet as it should.
</aside>
If you want to implement your own value type for the computation of Senders and Receivers, you should implement:
receiverValue
field;See the example below:
// struct or class for custom values for AssemblyObject calculation
// this can contain anything you need to compute
public struct MyValues
{
public int index;
public double aNumber;
public double anotherNumber;
public double[] manyNumbers;
public Vector3d aVector;
}
// extended AssemblyObject class
public class MyAssemblyObject:AssemblyObject
{
// do not change variable name here, just customize the data type
public MyValues receiverValue;
public MyAssemblyObject(AssemblyObject AO)
{
Utilities.Clone(AO);
}
}
// extended Assemblage class
public class MyAssemblage:Assemblage
{
// custom delegate fields
// do not change variable names here, just customize the data type
public ComputeCandidatesValuesMethod<MyValues> computeSendersValues;
public ComputeReceiverMethod<MyValues> computeReceiverValue;
public SelectWinnerMethod<MyValues> selectSender, selectReceiver;
public MyAssemblage(List<AssemblyObject> AOset, List<AssemblyObject> AOprevious, Plane P, int sO, HeuristicsSettings HeuSet, ExogenousSettings ExoSet):base(AOset, AOprevious, P, sO, HeuSet, ExoSet)
{}
}
// outside the classes above but still inside <Custom additional code>
// you can then write your custom methods