using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace BansheeEngine
{
/** @addtogroup Particles
* @{
*/
///
/// Represents a three dimensional field of vectors. It is represented by spatial bounds which are split into a grid of
/// values with user-defined density, where each grid cell is assigned a vector.
///
public partial class VectorField : Resource
{
private VectorField(bool __dummy0) { }
protected VectorField() { }
/// Creates a new vector field.
/// Description of the vector field to create.
///
/// Values to assign to the vector field. Number of entries must match countX * countY * countZ.
///
public VectorField(VectorFieldOptions desc, Vector3[] values)
{
Internal_create(this, ref desc, values);
}
/// Returns a reference wrapper for this resource.
public RRef Ref
{
get { return Internal_GetRef(mCachedPtr); }
}
/// Returns a reference wrapper for this resource.
public static implicit operator RRef(VectorField x)
{ return Internal_GetRef(x.mCachedPtr); }
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern RRef Internal_GetRef(IntPtr thisPtr);
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern void Internal_create(VectorField managedInstance, ref VectorFieldOptions desc, Vector3[] values);
}
/** @} */
}