extractDecalVector3 = function (indexId) {
                var result = new BABYLON.PositionNormalVertex();
                if (!indices || !positions || !normals) {
                    return result;
                }
                var vertexId = indices[indexId];
                result.position = new BABYLON.Vector3(positions[vertexId * 3], positions[vertexId * 3 + 1], positions[vertexId * 3 + 2]);
                // Send vector to decal local world
                result.position = BABYLON.Vector3.TransformCoordinates(result.position, transformMatrix);
                // Get normal
                result.normal = new BABYLON.Vector3(normals[vertexId * 3], normals[vertexId * 3 + 1], normals[vertexId * 3 + 2]);
                result.normal = BABYLON.Vector3.TransformNormal(result.normal, transformMatrix);
                return result;
            }
Creates a decal mesh.
tuto : http://doc.babylonjs.com/tutorials/Mesh_CreateXXX_Methods_With_Options_Parameter#decals
A decal is a mesh usually applied as a model onto the surface of another mesh. So don't forget the parameter `sourceMesh` depicting the decal.
The parameter `position` (Vector3, default `(0, 0, 0)`) sets the position of the decal in World coordinates.
The parameter `normal` (Vector3, default `Vector3.Up`) sets the normal of the mesh where the decal is applied onto in World coordinates.
The parameter `size` (Vector3, default `(1, 1, 1)`) sets the decal scaling.
The parameter `angle` (float in radian, default 0) sets the angle to rotate the decal.