// Create a new PaintObject
	public static PaintObjectC NewPaintObject (PlaygroundParticlesC playgroundParticles) {
		PaintObjectC paintObject = new PaintObjectC();
		playgroundParticles.paint = paintObject;
		playgroundParticles.paint.Initialize();
		return paintObject;
	}
	// Live erase into a PaintObject's positions directly, returns true if position was erased
	public static bool Erase (PaintObjectC paintObject, Vector3 position, float radius) {
		return paintObject.Erase(position,radius);
	}
	// Clone this PaintObject
	public PaintObjectC Clone () {
		PaintObjectC paintObject = new PaintObjectC();
		if (this.paintPositions!=null)
			paintObject.paintPositions.AddRange(this.paintPositions);
		paintObject.positionLength = this.positionLength;
		paintObject.lastPaintPosition = this.lastPaintPosition;
		paintObject.spacing = this.spacing;
		paintObject.layerMask = this.layerMask;
		if (this.brush!=null)
			paintObject.brush = this.brush.Clone();
		else
			paintObject.brush = new PlaygroundBrushC();
		paintObject.exceedMaxStopsPaint = this.exceedMaxStopsPaint;
		paintObject.initialized = this.initialized;
		return paintObject;
	}
	// Live paint into a PaintObject's positions directly
	public static void Paint (PaintObjectC paintObject, Vector3 position, Vector3 normal, Transform parent, Color32 color) {
		paintObject.Paint(position,normal,parent,color);
	}