예제 #1
0
        private PositionNormalColorIndexedTriangleBuffer InternalGetPositionNormalColorIndexedTriangleBuffer(IMaterial material, PlaneD3D[] clipPlanes)
        {
            // Transform the clip planes to our coordinate system

            var clipPlanesTransformed = clipPlanes.Select(plane => _transformation.Transform(plane)).ToArray();

            var key = new MaterialPlusClippingKey(material, clipPlanesTransformed);

            if (!_positionNormalColorIndexedTriangleBuffers.TryGetValue(key, out var result))
            {
                result = new PositionNormalColorIndexedTriangleBufferWithClipping(this, clipPlanesTransformed);
                _positionNormalColorIndexedTriangleBuffers.Add(key, result);
            }

            return(result);
        }
예제 #2
0
		private PositionNormalColorIndexedTriangleBuffer InternalGetPositionNormalColorIndexedTriangleBuffer(IMaterial material, PlaneD3D[] clipPlanes)
		{
			// Transform the clip planes to our coordinate system

			var clipPlanesTransformed = clipPlanes.Select(plane => _transformation.Transform(plane)).ToArray();

			PositionNormalColorIndexedTriangleBuffer result;
			var key = new MaterialPlusClippingKey(material, clipPlanesTransformed);
			if (!_positionNormalColorIndexedTriangleBuffers.TryGetValue(key, out result))
			{
				result = new PositionNormalColorIndexedTriangleBufferWithClipping(this, clipPlanesTransformed);
				_positionNormalColorIndexedTriangleBuffers.Add(key, result);
			}

			return result;
		}