Exemplo n.º 1
0
        /// <summary>
        /// 指定の法線の面の頂点データを作成します。
        /// </summary>
        /// <param name="source">対応する面の VertexSource。</param>
        /// <param name="normal">面の法線。</param>
        void InitializeSurface(SurfaceVertexSource source, Vector3 normal)
        {
            var   quadrangle = new Quadrangle();
            float s          = Size * 0.5f;

            var side1 = new Vector3(normal.Y, normal.Z, normal.X);
            var side2 = Vector3.Cross(normal, side1);

            quadrangle.Position0 = (normal - side1 - side2) * s;
            quadrangle.Position1 = (normal - side1 + side2) * s;
            quadrangle.Position2 = (normal + side1 + side2) * s;
            quadrangle.Position3 = (normal + side1 - side2) * s;
            quadrangle.Normal    = normal;
            quadrangle.Make(source);
        }
Exemplo n.º 2
0
        /// <summary>
        /// VertexSource へ頂点データを設定します。
        /// </summary>
        /// <param name="source">頂点データが設定される VertexSource。</param>
        public void Make(VertexSource<VertexPositionNormalColor, ushort> source)
        {
            EnsureColors();

            var quad = new Quadrangle();

            for (int i = 0; i < normals.Length; i++)
            {
                ResolvePositionNormal(ref quad, ref normals[i]);
                quad.Color = colors[i];
                quad.Make(source);
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// 指定の法線の面の頂点データを作成します。
        /// </summary>
        /// <param name="source">対応する面の VertexSource。</param>
        /// <param name="normal">面の法線。</param>
        void InitializeSurface(SurfaceVertexSource source, Vector3 normal)
        {
            var quadrangle = new Quadrangle();
            float s = Size * 0.5f;

            var side1 = new Vector3(normal.Y, normal.Z, normal.X);
            var side2 = Vector3.Cross(normal, side1);

            quadrangle.Position0 = (normal - side1 - side2) * s;
            quadrangle.Position1 = (normal - side1 + side2) * s;
            quadrangle.Position2 = (normal + side1 + side2) * s;
            quadrangle.Position3 = (normal + side1 - side2) * s;
            quadrangle.Normal = normal;
            quadrangle.Make(source);
        }