Ejemplo n.º 1
0
        public void WritePointOptimized(PCXRPoint point)
        {
            point.ToByteArray().CopyTo(_Buffer, _PointsBuffered * _Header.Stride * sizeof(float));
            _PointsBuffered++;

            if (_PointsBuffered == _NumberOfPointsToBuffer)
            {
                _PointsBuffered = 0;
                _PointsWritten += _NumberOfPointsToBuffer;
            }
        }
Ejemplo n.º 2
0
        public void WritePoint(PCXRPoint point)
        {
            if ((_UseBuffer == true) && (_PointsWritten == (_NumberOfPoints - _BufferSpill)))
            {
                _UseBuffer = false;
            }

            if (_UseBuffer)
            {
                if (_PointsBuffered < (_NumberOfPointsToBuffer - 1))
                {
                    point.ToByteArray().CopyTo(_Buffer, _PointsBuffered * _Header.Stride * sizeof(float));
                    _PointsBuffered++;
                    return;
                }
                else
                {
                    try
                    {
                        point.ToByteArray().CopyTo(_Buffer, _PointsBuffered * _Header.Stride * sizeof(float));
                        _PointsBuffered++;

                        _StreamWriter.Write(_Buffer, 0, _NumberOfPointsToBuffer * _Header.Stride * sizeof(float));
                        _PointsWritten += _NumberOfPointsToBuffer;
                    }
                    catch (Exception e)
                    {
                        Console.Write(e.Message);
                    }
                    _PointsBuffered = 0;
                    return;
                }
            }
            else
            {
                byte[] pointBytes = point.ToByteArray();
                _StreamWriter.Write(pointBytes, 0, pointBytes.Length);
                _PointsWritten++;
                return;
            }
        }