Exemple #1
0
        /// <summary>
        /// Sets the morph target deltas for the given vertex.
        /// </summary>
        /// <param name="vertexIndex">The index of the vertex.</param>
        /// <param name="geometryDelta">The Position, Normal and Tangent deltas</param>
        /// <param name="materialDelta">The Color and TexCoords deltas</param>
        /// <remarks>
        /// if all the deltas are zero, it removes the vertex from the list of morph target vertices.
        /// </remarks>
        public void SetVertexDelta(int vertexIndex, VertexGeometryDelta geometryDelta, VertexMaterialDelta materialDelta)
        {
            if (object.Equals(geometryDelta, default(VertexGeometryDelta)) && object.Equals(materialDelta, default(VertexMaterialDelta)))
            {
                _RemoveVertex(vertexIndex);
                return;
            }

            var vertex = _BaseVertexFunc(vertexIndex);

            vertex.Geometry.Add(geometryDelta);

            if (typeof(TvM) != typeof(VertexEmpty)) vertex.Material.Add(materialDelta);

            _SetVertex(vertexIndex, vertex);
        }
Exemple #2
0
 public void Add(VertexGeometryDelta delta)
 {
     this.Position += delta.PositionDelta;
 }