예제 #1
0
        public void KeepsTrackOfElements()
        {
            var iterator = new PlyHeaderIterator(ValidHeader);

            Assert.IsTrue(iterator.IsOnFirstElement);
            Assert.IsTrue(iterator.IsOnFirstProperty);
            Assert.IsFalse(iterator.IsIterationDone);
            Assert.AreEqual(iterator.CurrentProperty, ValidHeader.Elements[0].Properties[0]);

            iterator.MoveNext();
            Assert.IsFalse(iterator.IsOnFirstElement);
            Assert.IsFalse(iterator.IsOnFirstProperty);
            Assert.IsFalse(iterator.IsIterationDone);
            Assert.AreEqual(iterator.CurrentElement, 0);
            Assert.AreEqual(iterator.CurrentProperty, ValidHeader.Elements[0].Properties[1]);

            iterator.MoveNext();
            iterator.MoveNext();
            Assert.AreEqual(iterator.CurrentElement, 0);
            Assert.AreEqual(iterator.CurrentProperty, ValidHeader.Elements[0].Properties[0]);

            iterator.MoveNext();
            iterator.MoveNext();
            iterator.MoveNext();
            Assert.IsFalse(iterator.IsOnFirstElement);
            Assert.AreEqual(iterator.CurrentProperty, ValidHeader.Elements[1].Properties[0]);
            Assert.IsTrue(iterator.IsOnFirstProperty);
            iterator.MoveNext();
            iterator.MoveNext();
            Assert.IsTrue(iterator.IsIterationDone);
        }
예제 #2
0
        public PlyWriter(Stream targetStream, PlyHeader header)
        {
            if (targetStream == null)
            {
                throw new ArgumentNullException($"Cannot initialize {nameof(PlyWriter)}. Given {nameof(targetStream)} is null.", nameof(targetStream));
            }

            if (header == null)
            {
                throw new ArgumentNullException($"Cannot initialize {nameof(PlyWriter)}. Given {nameof(header)} is null.", nameof(header));
            }

            if (!targetStream.CanWrite)
            {
                throw new ArgumentException($"Cannot initialize {nameof(PlyWriter)}. Given {nameof(targetStream)} is readonly.", nameof(targetStream));
            }

            _stream   = targetStream;
            _iterator = new PlyHeaderIterator(header);
        }
예제 #3
0
 public PlyReader(PlyHeader header)
 {
     _iterator = new PlyHeaderIterator(header);
 }