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); }
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; }