private void AffectorWindow_FormClosing(object sender, FormClosingEventArgs e) { switch (m_type) { case AffectorType.Colour: SFML.Graphics.Color start = new SFML.Graphics.Color(); start.R = panelColourStart.BackColor.R; start.G = panelColourStart.BackColor.G; start.B = panelColourStart.BackColor.B; SFML.Graphics.Color end = new SFML.Graphics.Color(); end.R = panelColourEnd.BackColor.R; end.G = panelColourEnd.BackColor.G; end.B = panelColourEnd.BackColor.B; Affector = new ColourAffector(start, end, (float)numericUpDownColour.Value); break; case AffectorType.Force: Affector = new ForceAffector(new SFML.Window.Vector2f((float)numericUpDownForceX.Value, (float)numericUpDownForceY.Value)); break; case AffectorType.Rotation: Affector = new RotationAffector((float)numericUpDownRotation.Value); break; case AffectorType.Scale: Affector = new ScaleAffector(new SFML.Window.Vector2f((float)numericUpDownScaleX.Value, (float)numericUpDownScaleY.Value)); break; case AffectorType.Velocity: Affector = new VelocityAffector(new SFML.Window.Vector2f((float)numericUpDownVelX.Value, (float)numericUpDownVelY.Value)); break; } }
protected WorkflowGrain(Func <WorkflowIdentity, Activity> workflowDefinitionFactory, WorkflowIdentity workflowDefinitionIdentity) { // TODO // it's not possible to force at compile time that the WorkflowGrain implementation should implement TEffector // it would be great to check all the WorkflowGrain implementations at assembly load time (Orleans bootstrap? DI? module initilizer .cctor?) // AffectorProxy<> and EffectorProxy<> cctor also executes checks on TAffector and TEffector method signatures, but called only at first usage and not load time // Fody/ModuleInit: https://github.com/fody/moduleinit // Module Initializer: http://einaregilsson.com/module-initializers-in-csharp/ if (!(this is TEffector)) { throw new InvalidProgramException($"Type '{GetType().GetFriendlyName()}' must explicitly implement interface '{typeof(TEffector).GetFriendlyName()}'!"); } workflowHost = new WorkflowHost(new WorkflowGrainEffector(this), workflowDefinitionFactory, workflowDefinitionIdentity); workflowHostAffector = AffectorProxy <TAffector> .CreateProxy(workflowHost); }
public void addAffector(IAffector affector) { m_affectors.Add(affector); }
public static void BindTo(this IAffectable target, IAffector affector) { target.BindAffectorPose = Matrix.Invert(affector.GlobalPose); target.Affector = affector; affector.Affectable = target; }
public static void UnBindFrom(this IAffectable target, IAffector affector) { target.BindAffectorPose = Matrix.Identity; target.Affector = null; affector.Affectable = null; }
void IAffectedMethod.AddTrigger(IAffector affector, ITrigger trigger) { affector.AddTrigger(trigger); }
IAffector IAffectedMethod.AddAffector(IAffector affector) { Affectors.Add(affector); return(affector); }