示例#1
0
        private void UpdateIntegrator(Cdn.Integrator integrator)
        {
            bool hasSteppers = OnSteppedProxy != null && OnSteppedProxy.GetInvocationList().Length != 0;

            if (d_integrator != null)
            {
                if (hasSteppers)
                {
                    d_integrator.Stepped -= HandleIntegratorStepped;
                }

                d_integrator.Begun -= HandleIntegratorBegin;
                d_integrator.Ended -= HandleIntegratorEnd;
            }

            d_integrator = integrator;

            if (d_integrator != null)
            {
                d_integrator.Begun += HandleIntegratorBegin;
                d_integrator.Ended += HandleIntegratorEnd;

                if (hasSteppers)
                {
                    d_integrator.Stepped += HandleIntegratorStepped;
                }
            }
        }
示例#2
0
 public ModifyIntegrator(Wrappers.Network network, Cdn.Integrator integrator)
 {
     d_network        = network;
     d_prevIntegrator = network.Integrator;
     d_integrator     = integrator;
 }
示例#3
0
 public void InitializeIntegrate(Cdn.Integrator integrator)
 {
     cdn_operator_initialize_integrate(Handle, integrator == null ? IntPtr.Zero : integrator.Handle);
 }
示例#4
0
 public void Update(Cdn.Integrator integrator)
 {
     cdn_io_update(Handle, integrator == null ? IntPtr.Zero : integrator.Handle);
 }