public OrientedPartRenderer(IEnumerableSurface <Material> Source, Axis Direction, int DirectionBound) { var accum = _CreateAccum(DirectionBound); IOctreeInteriorSurface <Material> ois = Source.Extend <IOctreeInteriorSurface <Material> >(); if (ois != null) { _SendVertices(ois.Slices, Direction, DirectionBound, accum); } else { _SendVertices(Source.Borders, Direction, DirectionBound, accum); } int Size; this._Layers = _CreateLayers(accum, DirectionBound, out Size); this._VBO = new VBO <ColorNormalVertex>(_Concat(accum), Size); }
public StaticRenderer(IEnumerableSurface <Material> Source) { IIterator <ColorNormalVertex, VBO <ColorNormalVertex> > vboc = VBO <ColorNormalVertex> .Create(); IOctreeInteriorSurface <Material> ois = Source.Extend <IOctreeInteriorSurface <Material> >(); if (ois != null) { Quadtree <Material>[,] slices = ois.Slices; for (int iax = 0; iax < 3; iax++) { for (int l = 0; l < ois.Size - 1; l++) { Send(new QuadtreeSurface <Material>(slices[iax, l], Material.Default, (Axis)iax, l), vboc, vboc); } } this._VBO = vboc.End(); return; } Send(Source, vboc); this._VBO = vboc.End(); }