public MaterialPlusClippingPlusColorProviderKey(IMaterial material, PlaneD3D[] clipPlanes, Gdi.Plot.IColorProvider colorProvider)
			: base(material, clipPlanes)
		{
			if (null == colorProvider)
				throw new ArgumentNullException(nameof(colorProvider));

			this.ColorProvider = colorProvider;
		}
Exemplo n.º 2
0
        public MaterialPlusClippingPlusColorProviderKey(IMaterial material, PlaneD3D[] clipPlanes, Gdi.Plot.IColorProvider colorProvider)
            : base(material, clipPlanes)
        {
            if (null == colorProvider)
            {
                throw new ArgumentNullException(nameof(colorProvider));
            }

            ColorProvider = colorProvider;
        }
Exemplo n.º 3
0
        public float[] GetColorArrayForColorProvider(Gdi.Plot.IColorProvider colorProvider)
        {
            int numberOfColors = 1024;
            var result         = new float[4 * numberOfColors];

            for (int i = 0, offs = 0; i < numberOfColors; ++i, offs += 4)
            {
                double tu = i / (double)numberOfColors;
                double u  = (tu - UOfColorBelow) / UOfColorRegular;

                var c = colorProvider.GetAxoColor(u);

                result[offs + 0] = c.ScR;
                result[offs + 1] = c.ScG;
                result[offs + 2] = c.ScB;
                result[offs + 3] = c.ScA;
            }
            return(result);
        }
Exemplo n.º 4
0
        public override IPositionNormalUIndexedTriangleBuffer GetPositionNormalUIndexedTriangleBuffer(IMaterial material, PlaneD3D[] clipPlanes, Gdi.Plot.IColorProvider colorProvider)
        {
            // Transform the clip planes to our coordinate system

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

            var key = new MaterialPlusClippingPlusColorProviderKey(material, clipPlanesTransformed, colorProvider);

            if (!_positionNormalUIndexedTriangleBuffers.TryGetValue(key, out var result))
            {
                result = new PositionNormalUIndexedTriangleBuffer(this);
                _positionNormalUIndexedTriangleBuffers.Add(key, result);
            }

            return(result);
        }