Exemplo n.º 1
0
 public void Dispose()
 {
     if (handle != UIntPtr.Zero)
     {
         NAPI.DestroyBrain(handle);
         handle = UIntPtr.Zero;
     }
 }
Exemplo n.º 2
0
        public bool GetActivityStats(out NAPI.BrainActivityStats outResult)
        {
            var stats  = new NAPI.BrainActivityStats();
            var status = NAPI.GetBrainActivityStats(handle, ref stats);

            outResult = stats;
            return(status);
        }
Exemplo n.º 3
0
        public Brain OffspringMutated(ref NAPI.OffspringBuilderConfig config)
        {
            var handle = NAPI.BrainOffspringMutated(ref config, this.handle);

            if (handle != UIntPtr.Zero)
            {
                return(new Brain(handle));
            }
            return(null);
        }
Exemplo n.º 4
0
        public static Brain DeserializeYaml(string yaml, bool killImpulses = false)
        {
            var handle = NAPI.DeserializeYamlBrain(yaml, killImpulses);

            if (handle != UIntPtr.Zero)
            {
                return(new Brain(handle));
            }
            return(null);
        }
Exemplo n.º 5
0
        public static Brain OffspringMerged(ref NAPI.OffspringBuilderConfig config, Brain brainA, Brain brainB)
        {
            var handle = NAPI.BrainOffspringMerged(ref config, brainA.handle, brainB.handle);

            if (handle != UIntPtr.Zero)
            {
                return(new Brain(handle));
            }
            return(null);
        }
Exemplo n.º 6
0
        public static Brain DeserializeJson(string json, bool killImpulses = false)
        {
            var handle = NAPI.DeserializeJsonBrain(json, killImpulses);

            if (handle != UIntPtr.Zero)
            {
                return(new Brain(handle));
            }
            return(null);
        }
Exemplo n.º 7
0
        public string SerializeYaml()
        {
            string result = null;

            NAPI.SerializeYamlBrain(
                handle,
                (context, content) => result = content,
                IntPtr.Zero
                );
            return(result);
        }
Exemplo n.º 8
0
        public bool GetSynapsesCount(out UIntPtr count)
        {
            var result = UIntPtr.Zero;

            if (NAPI.GetBrainSynapsesCount(handle, ref result))
            {
                count = result;
                return(true);
            }
            count = result;
            return(false);
        }
Exemplo n.º 9
0
        public bool EffectorPotentialRelease(NAPI.UID uid, out double potential)
        {
            var result = 0.0;

            if (NAPI.BrainBrainEffectorPotentialRelease(handle, uid, ref result))
            {
                potential = result;
                return(true);
            }
            potential = result;
            return(false);
        }
Exemplo n.º 10
0
        public string SerializeJson(bool pretty = true)
        {
            string result = null;

            NAPI.SerializeJsonBrain(
                handle,
                pretty,
                (context, content) => result = content,
                IntPtr.Zero
                );
            return(result);
        }
Exemplo n.º 11
0
        public static Brain DeserializeBytes(byte[] bytes, bool killImpulses = false)
        {
            var ptr = Marshal.AllocHGlobal(bytes.Length);

            Marshal.Copy(bytes, 0, ptr, bytes.Length);
            var handle = NAPI.DeserializeBytesBrain(ptr, (UIntPtr)bytes.Length, killImpulses);

            Marshal.FreeHGlobal(ptr);
            if (handle != UIntPtr.Zero)
            {
                return(new Brain(handle));
            }
            return(null);
        }
Exemplo n.º 12
0
 public NAPI.UID[] GetEffectors()
 {
     NAPI.UID[] result = null;
     NAPI.BrainGetEffectors(
         handle,
         (context, uids, count) =>
     {
         if (uids != IntPtr.Zero && (uint)count > 0)
         {
             result = MakeUids(uids, count);
         }
     },
         IntPtr.Zero
         );
     return(result);
 }
Exemplo n.º 13
0
 public byte[] SerializeBytes()
 {
     byte[] result = null;
     NAPI.SerializeBytesBrain(
         handle,
         (context, bytes, size) =>
     {
         if (bytes != IntPtr.Zero && (int)size > 0)
         {
             result = new byte[(int)size];
             Marshal.Copy(bytes, result, 0, (int)size);
         }
     },
         IntPtr.Zero
         );
     return(result);
 }
Exemplo n.º 14
0
 public bool Process(double deltaTime)
 {
     return(handle == UIntPtr.Zero
         ? false
         : NAPI.ProcessBrain(handle, deltaTime));
 }
Exemplo n.º 15
0
 public static void ProcessAll(double deltaTime)
 {
     NAPI.ProcessBrains(deltaTime);
 }
Exemplo n.º 16
0
 public bool Exists()
 {
     return(NAPI.HasBrain(handle));
 }
Exemplo n.º 17
0
 public bool SensorTriggerImpulse(NAPI.UID uid, double potential)
 {
     return(NAPI.BrainBrainSensorTriggerImpulse(handle, uid, potential));
 }
Exemplo n.º 18
0
 public Brain(ref NAPI.BrainBuilderConfig config)
 {
     handle = NAPI.BuildBrain(ref config);
 }
Exemplo n.º 19
0
 public bool IgniteRandomSynapses(UIntPtr count, double potentialMin, double potentialMax)
 {
     return(NAPI.IgniteRandomBrainSynapses(handle, count, potentialMin, potentialMax));
 }