Get() public method

public Get ( int Row, int Column ) : Color
Row int
Column int
return Color
Exemplo n.º 1
0
        public List <KeyFrame> GenerateInbetweenFrames(KeyFrame firstKeyFrame, KeyFrame secondKeyFrame)
        {
            List <KeyFrame> newFrames = new List <KeyFrame>(this.GeneratedFrameCount);
            double          interval  = (secondKeyFrame.StartTime - firstKeyFrame.StartTime).TotalMilliseconds;

            for (int index = 0; index < this.GeneratedFrameCount; index++)
            {
                TimeSpan frameStart = firstKeyFrame.StartTime + new TimeSpan(0, 0, 0, 0, (int)(interval * index));
                KeyFrame newFrame   = new KeyFrame(secondKeyFrame.RowCount, secondKeyFrame.ColumnCount, frameStart, null);
                for (int row = 0; row < secondKeyFrame.RowCount; row++)
                {
                    for (int col = 0; col < secondKeyFrame.ColumnCount; col++)
                    {
                        int redDistance   = secondKeyFrame.Get(row, col).Red - firstKeyFrame.Get(row, col).Red;
                        int blueDistance  = secondKeyFrame.Get(row, col).Green - firstKeyFrame.Get(row, col).Green;
                        int greenDistance = secondKeyFrame.Get(row, col).Blue - firstKeyFrame.Get(row, col).Blue;

                        newFrame.Set(row, col, new Color(
                                         (byte)(redDistance * index),
                                         (byte)(greenDistance * index),
                                         (byte)(blueDistance * index)));
                    }
                }
                newFrames[index] = newFrame;
            }

            return(newFrames);
        }
Exemplo n.º 2
0
        public List<KeyFrame> GenerateInbetweenFrames(KeyFrame firstKeyFrame, KeyFrame secondKeyFrame)
        {
            List<KeyFrame> newFrames = new List<KeyFrame>(this.GeneratedFrameCount);
            double interval = (secondKeyFrame.StartTime - firstKeyFrame.StartTime).TotalMilliseconds;

            for (int index = 0; index < this.GeneratedFrameCount; index++)
            {
                TimeSpan frameStart = firstKeyFrame.StartTime + new TimeSpan(0, 0, 0, 0, (int)(interval * index));
                KeyFrame newFrame = new KeyFrame(secondKeyFrame.RowCount, secondKeyFrame.ColumnCount, frameStart, null);
                for (int row = 0; row < secondKeyFrame.RowCount; row++)
                {
                    for (int col = 0; col < secondKeyFrame.ColumnCount; col++)
                    {
                        int redDistance = secondKeyFrame.Get(row, col).Red - firstKeyFrame.Get(row, col).Red;
                        int blueDistance = secondKeyFrame.Get(row, col).Green - firstKeyFrame.Get(row, col).Green;
                        int greenDistance = secondKeyFrame.Get(row, col).Blue - firstKeyFrame.Get(row, col).Blue;

                        newFrame.Set(row, col, new Color(
                            (byte)(redDistance * index),
                            (byte)(greenDistance * index),
                            (byte)(blueDistance * index)));
                    }
                }
                newFrames[index] = newFrame;
            }

            return newFrames;
        }
Exemplo n.º 3
0
        /// <summary>
        /// Send a keyframe to the microcontroller using the packet protocol
        /// </summary>
        /// <param name="currentFrame"></param>
        private void SendFrameToSerial(KeyFrame currentFrame)
        {
            int packetSize = currentFrame.RowCount * currentFrame.ColumnCount * 3;
            byte[] packet = new byte[packetSize];

            for (int row = 0; row < currentFrame.RowCount; ++row)
            {
                for (int col = 0; col < currentFrame.ColumnCount; ++col)
                {
                    int windowOffset = (row * currentFrame.ColumnCount  + col) * 3;
                    packet[windowOffset + 0] = currentFrame.Get(row, col).Red;
                    packet[windowOffset + 1] = currentFrame.Get(row, col).Green;
                    packet[windowOffset + 2] = currentFrame.Get(row, col).Blue;
                }
            }

            Debug.WriteLine("Sending frame to serial");

            packetProtocol.snd_ascii_hex(serial_packet_protocol.packet_types.SEND_BUFFER_TYPE, packet, packet.Length);
        }