Example #1
0
 public MRecipeBaseNode()
     : base()
 {
     ArrayInfo     = new MArrayInfo();
     TransformInfo = new TransformInfo();
     Fiducials     = new ObservableCollection <MFiducialInfo>();
 }
Example #2
0
        /// <summary>
        ///		The copy constructor
        /// </summary>
        /// <param name="info"></param>
        private MArrayInfo(MArrayInfo info)
        {
            NumX = info.NumX;
            NumY = info.NumY;
            NumZ = info.NumZ;

            PitchX = info.PitchX;
            PitchY = info.PitchY;
            PitchZ = info.PitchZ;

            ArrayStyle = info.ArrayStyle;
        }
Example #3
0
 /// <summary>
 /// Use to get all tiles, when order does not matter.
 /// </summary>
 /// <param name="callback"></param>
 public void BeginGetAllTiles_Parallel(Action <MTileDescription> callback)
 {
     MArrayInfo.BeginGetAll(ArrayInfo, (index) =>
     {
         Parallel.ForEach(TileDescriptions, (td) =>
         {
             var tile      = (MTileDescription)td.Clone();
             tile.CentreX += index.XInfo.Offset;
             tile.CentreY += index.YInfo.Offset;
             callback(tile);
         });
     });
 }
Example #4
0
 /// <summary>
 /// Use to get all tiles.
 /// </summary>
 /// <param name="callback"></param>
 public void BeginGetAllTiles(Action <MTileDescription> callback)
 {
     MArrayInfo.BeginGetAll(ArrayInfo, (index) =>
     {
         foreach (var td in TileDescriptions)
         {
             var tile      = (MTileDescription)td.Clone();
             tile.CentreX += index.XInfo.Offset;
             tile.CentreY += index.YInfo.Offset;
             callback(tile);
         }
     });
 }
Example #5
0
        /// <summary>
        /// Use to get layers when order does not matter.
        /// </summary>
        /// <param name="callback"></param>
        public void BeginGetAllLayers_Parallel(Action <MRecipeDeviceLayer> callback)
        {
            MArrayInfo.BeginGetAll_Parallel(ArrayInfo, (index) =>
            {
                Parallel.ForEach(Layers, (l) =>
                {
                    var layer = (MRecipeDeviceLayer)l.Clone();

                    layer.TransformInfo.OffsetX += index.XInfo.Offset;
                    layer.TransformInfo.OffsetY += index.YInfo.Offset;
                    layer.TransformInfo.OffsetZ += index.ZInfo.Offset;

                    callback(layer);
                });
            });
        }
Example #6
0
        /// <summary>
        /// Use to get all layers.
        /// </summary>
        /// <param name="callback"></param>
        public void BeginGetAllLayers(Action <MRecipeDeviceLayer> callback)
        {
            MArrayInfo.BeginGetAll(ArrayInfo, (index) =>
            {
                foreach (var l in Layers)
                {
                    var layer = (MRecipeDeviceLayer)l.Clone();

                    layer.TransformInfo.OffsetX += index.XInfo.Offset;
                    layer.TransformInfo.OffsetY += index.YInfo.Offset;
                    layer.TransformInfo.OffsetZ += index.ZInfo.Offset;

                    callback(layer);
                }
            });
        }
Example #7
0
        /// <summary>
        /// Use to get devices when order does not matter.
        /// </summary>
        /// <param name="callback"></param>
        public void BeginGetAllDevices_Parallel(Action <MRecipeDevice> callback)
        {
            MArrayInfo.BeginGetAll_Parallel(ArrayInfo, (index) =>
            {
                Parallel.ForEach(Devices, (d) =>
                {
                    var device = (MRecipeDevice)d.Clone();

                    device.TransformInfo.OffsetX += index.XInfo.Offset;
                    device.TransformInfo.OffsetY += index.YInfo.Offset;
                    device.TransformInfo.OffsetZ += index.ZInfo.Offset;

                    callback(device);
                });
            });
        }
Example #8
0
        /// <summary>
        /// Use to get all devices.
        /// </summary>
        /// <param name="callback"></param>
        public void BeginGetAllDevices(Action <MRecipeDevice> callback)
        {
            MArrayInfo.BeginGetAll(ArrayInfo, (index) =>
            {
                foreach (var d in Devices)
                {
                    var device = (MRecipeDevice)d.Clone();

                    device.TransformInfo.OffsetX += index.XInfo.Offset;
                    device.TransformInfo.OffsetY += index.YInfo.Offset;
                    device.TransformInfo.OffsetZ += index.ZInfo.Offset;

                    callback(device);
                }
            });
        }
Example #9
0
 /// <summary>
 ///		Auto generates position info using the given array info.
 /// </summary>
 /// <param name="info">The array info.</param>
 /// <param name="callback">A callback to receive the calculated values.</param>
 public static void BeginGetAll(MArrayInfo info, Action <(MArrayPositionInfo XInfo, MArrayPositionInfo YInfo, MArrayPositionInfo ZInfo)> callback)