Esempio n. 1
0
    // Update is called once per frame
    void Update()
    {
        if (started == true)
        {
            truck.MoveTruck(2);
            truck.SteeringWheels(SeekPointFollow());

            for (int i = 0; i < seekPoints.Length; i++)
            {
                seekPoints[i].pointPosition.z = truck._transform.position.z + 25f + truck.CurrentSpeed() * 0.05f;
            }
            for (int i = 0; i < seekPoints.Length; i++)
            {
                if (Physics.CheckSphere(seekPoints[i].pointPosition, 5, obstacleMsk))
                {
                    seekPoints[i].isClosed = true;
                }
                else
                {
                    seekPoints[i].isClosed = false;
                }
            }
            for (int i = 0; i < seekPoints.Length; i++)
            {
                if (seekPoints[i].isClosed == false)
                {
                    currentSeekPoint = seekPoints[i];
                    return;
                }
            }
        }
    }
        /// ------------------------------------------------------------------------------------------------------------
        /// <summary>
        /// ■Seek (Sets the current position of this stream to the given value.)
        /// </summary>
        /// <param name="offset"> (I) The point relative to origin from which to begin seeking </param>
        /// <param name="origin"> (I) Specifies the beginning, the end, or the current position as a reference point for origin </param>
        /// <returns>
        /// Return                (O) the new position in the stream
        /// </returns>
        /// <exception>
        /// Exception of System.IO.FileStream.Seek(long, SeekOrigin)
        /// </exception>
        /// <remarks>
        /// Wrapper function System.IO.FileStream.Seek(long, SeekOrigin)
        /// </remarks>
        /// <history>
        /// Ver.01.00.00.000  2013-06-05  (TSDV)hung.trinhhong  Create
        /// </history>
        /// ------------------------------------------------------------------------------------------------------------
        public long Seek(int offset, SeekPoint origin)
        {
            long position = 0;

            if (m_BinaryRW != null)
            {
                // mapping Toshiba.BN.DataAccess.FileAccess.SeekPoint with Sytem.IO.SeekOrigin
                SeekOrigin seekOrigin;
                switch (origin)
                {
                case SeekPoint.Begin:
                    seekOrigin = SeekOrigin.Begin;
                    break;

                case SeekPoint.End:
                    seekOrigin = SeekOrigin.End;
                    break;

                default:
                    seekOrigin = SeekOrigin.Current;
                    break;
                }
                position = m_BinaryRW.Seek(offset, seekOrigin);
            }
            return(position);
        }
Esempio n. 3
0
        public void CreateSeekTable()
        {
            ulong expectedNumberOfSamples; // Will be set while creating a new seekpoint
            ulong expectedByteOffset;      // Will be set while creating a new seekpoint

            FileHelper.GetNewFile(origFile, newFile);

            using (FlacFile flac = new FlacFile(newFile))
            {
                SeekTable seekTable = new SeekTable();
                flac.Metadata.Add(seekTable);

                // Create a new Seekpoint, a little further
                SeekPoint newSeekpoint = new SeekPoint();
                newSeekpoint.FirstSampleNumber = 1000;
                newSeekpoint.NumberOfSamples   = (ushort)1000;
                expectedNumberOfSamples        = newSeekpoint.NumberOfSamples;
                newSeekpoint.ByteOffset        = 0;
                expectedByteOffset             = newSeekpoint.ByteOffset;
                seekTable.SeekPoints.Add(newSeekpoint);

                // Create a placeholder seekpoint
                SeekPoint placeHolder = new SeekPoint();
                placeHolder.FirstSampleNumber = ulong.MaxValue;
                // The other two values are "undefined"
                Assert.IsTrue(placeHolder.IsPlaceHolder); // Already assert that the object itself handles this flac correctly.
                seekTable.SeekPoints.Add(placeHolder);

                // This should actually be allowed according to the FLAC format (multiple placeHolders are ok, but they must occur at the end of the seektable)
                seekTable.SeekPoints.Add(placeHolder);

                // Check if we actually get "2" placeholders ...
                Assert.AreEqual <int>(2, seekTable.SeekPoints.Placeholders);

                flac.Save();
            }
            using (FlacFile flac = new FlacFile(newFile))
            {
                // Now we want to try and find our new SeekPoint
                Assert.IsNotNull(flac.SeekTable);

                Assert.IsTrue(flac.SeekTable.SeekPoints.ContainsKey(1000));
                SeekPoint newSeekpoint = flac.SeekTable.SeekPoints[1000];

                Assert.AreEqual <ulong>(expectedNumberOfSamples, newSeekpoint.NumberOfSamples);
                Assert.AreEqual <ulong>(expectedByteOffset, newSeekpoint.ByteOffset);

                Assert.IsFalse(newSeekpoint.IsPlaceHolder);

                // Check if we actually get "2" placeholders ...
                Assert.AreEqual <int>(2, flac.SeekTable.SeekPoints.Placeholders);
            }
        }
Esempio n. 4
0
        /// <summary>
        /// Creates a new SeekTable base on the provided binary data.
        /// </summary>
        /// <param name="data"></param>
        public override void LoadBlockData(byte[] data)
        {
            UInt32 numberOfSeekpoints;
            SeekPoint newSeekPoint;

            numberOfSeekpoints = this.Header.MetaDataBlockLength / SEEKPOINT_SIZE;
            for (int i = 0; i < numberOfSeekpoints; i++) {
                newSeekPoint = new SeekPoint(BinaryDataHelper.GetDataSubset(data, i * (int)SEEKPOINT_SIZE, (int)SEEKPOINT_SIZE));
                // We should keep in mind that the placeholder seekpoints aren't actually added to the list but are kept only as a
                // count in this.SeekPoints.Placeholders
                this.SeekPoints.Add(newSeekPoint);
            }
        }
Esempio n. 5
0
    /// <summary>
    /// Execute the action.
    /// </summary>
    /// <param name='obj'>
    /// Object doing the action
    /// </param>
    override public void Run(GameObject obj, ActionData data)
    {
        SeekPoint seek = obj.GetComponent <SeekPoint>();

        if (seek == null)
        {
            seek = obj.AddComponent <SeekPoint>();
        }
        float hitT;

        if (targetPos == Vector3.zero)
        {
            seek.targetPos = data.mousePos;
        }
        else
        {
            seek.targetPos = targetPos;
        }
    }
Esempio n. 6
0
    private IEnumerator latestart()
    {
        yield return(new WaitForSeconds(2f));

        seekPoints = new SeekPoint[3];
        for (int i = 0; i < seekPoints.Length; i++)
        {
            seekPoints[i] = new SeekPoint();
            seekPoints[i].pointPosition = new Vector3();
        }
        currentSeekPoint = new SeekPoint();
        currentSeekPoint.pointPosition = new Vector3();
        for (int i = 0; i < seekPoints.Length; i++)
        {
            seekPoints[i].pointPosition.y = 0;
            seekPoints[i].pointPosition.z = 15;
        }
        seekPoints[0].pointPosition.x = (truck._transform.right * 14).x;
        seekPoints[2].pointPosition.x = -(truck._transform.right * 14).x;
        started = true;
    }
Esempio n. 7
0
        public override string ToString()
        {
            var filterParameters = new StringBuilder(100);

            if (Resource != null)
            {
                FilterUtility.ConcatenateParameter(filterParameters, "filename", Resource.Path);
            }

            if (!string.IsNullOrWhiteSpace(FormatName))
            {
                FilterUtility.ConcatenateParameter(filterParameters, "f", FormatName);
            }

            if (SeekPoint.HasValue)
            {
                FilterUtility.ConcatenateParameter(filterParameters, "sp", SeekPoint.GetValueOrDefault());
            }

            if (!string.IsNullOrWhiteSpace(Streams))
            {
                FilterUtility.ConcatenateParameter(filterParameters, "s", Streams);
            }

            if (StreamIndex.HasValue)
            {
                FilterUtility.ConcatenateParameter(filterParameters, "si", StreamIndex.GetValueOrDefault());
            }

            if (Loop.HasValue)
            {
                FilterUtility.ConcatenateParameter(filterParameters, "loop", Loop.GetValueOrDefault());
            }

            return(FilterUtility.JoinTypeAndParameters(this, filterParameters));
        }
Esempio n. 8
0
        public void CopyOpenEditAndSaveSeekTable()
        {
            ulong targetSampleNumber = 704512; // Will remove the seekpoint for this sample number ...
            ulong expectedNumberOfSamples;     // Will be set while creating a new seekpoint
            ulong expectedByteOffset;          // Will be set while creating a new seekpoint

            string origFile = @"Data\testfile3.flac";
            string newFile  = @"Data\testfile3_temp.flac";

            FileHelper.GetNewFile(origFile, newFile);

            try
            {
                using (FlacFile flac = new FlacFile(newFile))
                {
                    Assert.IsNotNull(flac.SeekTable);

                    // Will remove the at the given sample number ...
                    SeekPoint oldSeekpoint = flac.SeekTable.SeekPoints[targetSampleNumber];
                    flac.SeekTable.SeekPoints.Remove(targetSampleNumber);

                    // Create a new Seekpoint, a little further
                    SeekPoint newSeekpoint = new SeekPoint();
                    newSeekpoint.FirstSampleNumber = targetSampleNumber + 1000;                             // Put it a 1000 samples further ...
                    newSeekpoint.NumberOfSamples   = (ushort)(oldSeekpoint.NumberOfSamples - (ushort)1000); // Since we are a 1000 further, we contain a 1000 less samples
                    expectedNumberOfSamples        = newSeekpoint.NumberOfSamples;
                    newSeekpoint.ByteOffset        = oldSeekpoint.ByteOffset;
                    expectedByteOffset             = newSeekpoint.ByteOffset;
                    flac.SeekTable.SeekPoints.Add(newSeekpoint);

                    // Create a placeholder seekpoint
                    SeekPoint placeHolder = new SeekPoint();
                    placeHolder.FirstSampleNumber = ulong.MaxValue;
                    // The other two values are "undefined"
                    Assert.IsTrue(placeHolder.IsPlaceHolder); // Already assert that the object itself handles this flac correctly.
                    flac.SeekTable.SeekPoints.Add(placeHolder);

                    // This should actually be allowed according to the FLAC format (multiple placeHolders are ok, but they must occur at the end of the seektable)
                    flac.SeekTable.SeekPoints.Add(placeHolder);

                    // Check if we actually get "2" placeholders ...
                    Assert.AreEqual <int>(2, flac.SeekTable.SeekPoints.Placeholders);

                    flac.Save();
                }
                using (FlacFile flac = new FlacFile(newFile))
                {
                    // Now we want to try and find our new SeekPoint
                    Assert.IsNotNull(flac.SeekTable);

                    Assert.IsFalse(flac.SeekTable.SeekPoints.ContainsKey(targetSampleNumber));
                    Assert.IsTrue(flac.SeekTable.SeekPoints.ContainsKey(targetSampleNumber + 1000));
                    SeekPoint newSeekpoint = flac.SeekTable.SeekPoints[targetSampleNumber + 1000];

                    Assert.AreEqual <ulong>(expectedNumberOfSamples, newSeekpoint.NumberOfSamples);
                    Assert.AreEqual <ulong>(expectedByteOffset, newSeekpoint.ByteOffset);

                    Assert.IsFalse(newSeekpoint.IsPlaceHolder);

                    // Check if we actually get "2" placeholders ...
                    Assert.AreEqual <int>(2, flac.SeekTable.SeekPoints.Placeholders);
                }
            }
            finally
            {
                if (File.Exists(newFile))
                {
                    File.Delete(newFile);
                }
            }
        }
Esempio n. 9
0
        public void CopyOpenEditAndSaveSeekTable()
        {
            ulong targetSampleNumber = 704512; // Will remove the seekpoint for this sample number ...
            ulong expectedNumberOfSamples; // Will be set while creating a new seekpoint
            ulong expectedByteOffset; // Will be set while creating a new seekpoint

            string origFile = @"Data\testfile3.flac";
            string newFile = @"Data\testfile3_temp.flac";

            FileHelper.GetNewFile(origFile, newFile);

            try
            {
                using (FlacFile flac = new FlacFile(newFile))
                {
                    Assert.IsNotNull(flac.SeekTable);

                    // Will remove the at the given sample number ...
                    SeekPoint oldSeekpoint = flac.SeekTable.SeekPoints[targetSampleNumber];
                    flac.SeekTable.SeekPoints.Remove(targetSampleNumber);

                    // Create a new Seekpoint, a little further
                    SeekPoint newSeekpoint = new SeekPoint();
                    newSeekpoint.FirstSampleNumber = targetSampleNumber + 1000; // Put it a 1000 samples further ...
                    newSeekpoint.NumberOfSamples = (ushort)(oldSeekpoint.NumberOfSamples - (ushort)1000); // Since we are a 1000 further, we contain a 1000 less samples
                    expectedNumberOfSamples = newSeekpoint.NumberOfSamples;
                    newSeekpoint.ByteOffset = oldSeekpoint.ByteOffset;
                    expectedByteOffset = newSeekpoint.ByteOffset;
                    flac.SeekTable.SeekPoints.Add(newSeekpoint);

                    // Create a placeholder seekpoint
                    SeekPoint placeHolder = new SeekPoint();
                    placeHolder.FirstSampleNumber = ulong.MaxValue;
                    // The other two values are "undefined"
                    Assert.IsTrue(placeHolder.IsPlaceHolder); // Already assert that the object itself handles this flac correctly.
                    flac.SeekTable.SeekPoints.Add(placeHolder);

                    // This should actually be allowed according to the FLAC format (multiple placeHolders are ok, but they must occur at the end of the seektable)
                    flac.SeekTable.SeekPoints.Add(placeHolder);

                    // Check if we actually get "2" placeholders ...
                    Assert.AreEqual<int>(2, flac.SeekTable.SeekPoints.Placeholders);

                    flac.Save();
                }
                using (FlacFile flac = new FlacFile(newFile))
                {
                    // Now we want to try and find our new SeekPoint
                    Assert.IsNotNull(flac.SeekTable);

                    Assert.IsFalse(flac.SeekTable.SeekPoints.ContainsKey(targetSampleNumber));
                    Assert.IsTrue(flac.SeekTable.SeekPoints.ContainsKey(targetSampleNumber + 1000));
                    SeekPoint newSeekpoint = flac.SeekTable.SeekPoints[targetSampleNumber + 1000];

                    Assert.AreEqual<ulong>(expectedNumberOfSamples, newSeekpoint.NumberOfSamples);
                    Assert.AreEqual<ulong>(expectedByteOffset, newSeekpoint.ByteOffset);

                    Assert.IsFalse(newSeekpoint.IsPlaceHolder);

                    // Check if we actually get "2" placeholders ...
                    Assert.AreEqual<int>(2, flac.SeekTable.SeekPoints.Placeholders);
                }
            }
            finally
            {
                if (File.Exists(newFile))
                {
                    File.Delete(newFile);
                }
            }
        }
Esempio n. 10
0
        /// <summary>
        /// Will write the data describing this metadata block to the given stream.
        /// </summary>
        /// <param name="targetStream">Stream to write the data to.</param>
        public override void WriteBlockData(Stream targetStream)
        {
            this.Header.MetaDataBlockLength = (uint)(SeekPoints.Count + SeekPoints.Placeholders) * SEEKPOINT_SIZE;
            this.Header.WriteHeaderData(targetStream);

            foreach (var seekPoint in this.SeekPoints)
            {
                seekPoint.Value.WriteData(targetStream);
            }

            SeekPoint placeholder = new SeekPoint();
            placeholder.FirstSampleNumber = ulong.MaxValue;
            for (int i = 0; i < SeekPoints.Placeholders; i++)
            {
                // Here, we shall actually physically write placeholders, even though they don't really exist in memory ...
                // Again: this is a weird unnatural way to support multiple placeholders and it should be changed at some point!
                placeholder.WriteData(targetStream);
            }
        }
Esempio n. 11
0
        public void CreateSeekTable()
        {
            ulong expectedNumberOfSamples; // Will be set while creating a new seekpoint
            ulong expectedByteOffset; // Will be set while creating a new seekpoint

            FileHelper.GetNewFile(origFile, newFile);

            using (FlacFile flac = new FlacFile(newFile))
            {
                SeekTable seekTable = new SeekTable();
                flac.Metadata.Add(seekTable);

                // Create a new Seekpoint, a little further
                SeekPoint newSeekpoint = new SeekPoint();
                newSeekpoint.FirstSampleNumber = 1000;
                newSeekpoint.NumberOfSamples = (ushort)1000;
                expectedNumberOfSamples = newSeekpoint.NumberOfSamples;
                newSeekpoint.ByteOffset = 0;
                expectedByteOffset = newSeekpoint.ByteOffset;
                seekTable.SeekPoints.Add(newSeekpoint);

                // Create a placeholder seekpoint
                SeekPoint placeHolder = new SeekPoint();
                placeHolder.FirstSampleNumber = ulong.MaxValue;
                // The other two values are "undefined"
                Assert.IsTrue(placeHolder.IsPlaceHolder); // Already assert that the object itself handles this flac correctly.
                seekTable.SeekPoints.Add(placeHolder);

                // This should actually be allowed according to the FLAC format (multiple placeHolders are ok, but they must occur at the end of the seektable)
                seekTable.SeekPoints.Add(placeHolder);

                // Check if we actually get "2" placeholders ...
                Assert.AreEqual<int>(2, seekTable.SeekPoints.Placeholders);

                flac.Save();
            }
            using (FlacFile flac = new FlacFile(newFile))
            {
                // Now we want to try and find our new SeekPoint
                Assert.IsNotNull(flac.SeekTable);

                Assert.IsTrue(flac.SeekTable.SeekPoints.ContainsKey(1000));
                SeekPoint newSeekpoint = flac.SeekTable.SeekPoints[1000];

                Assert.AreEqual<ulong>(expectedNumberOfSamples, newSeekpoint.NumberOfSamples);
                Assert.AreEqual<ulong>(expectedByteOffset, newSeekpoint.ByteOffset);

                Assert.IsFalse(newSeekpoint.IsPlaceHolder);

                // Check if we actually get "2" placeholders ...
                Assert.AreEqual<int>(2, flac.SeekTable.SeekPoints.Placeholders);
            }
        }