function Font(url)
{
	Resource.call(this, "font", "Font");

	/**
	 * If true the font glyphs are reversed.
	 *
	 * @property reversed
	 * @type {boolean}
	 * @default false
	 */
	this.reversed = false;

	/**
	 * Font data, can be an ArrayBuffer or JSON.
	 *
	 * @property font
	 * @type {Object}
	 * @default null
	 */
	this.font = null;

	if (url !== undefined)
	{	
		// Arraybuffer
		if (url instanceof ArrayBuffer)
		{
			this.data = url;
			this.format = "arraybuffer";
			this.loadTTF();
		}
		// Opentype JSON
		else if (typeof url === "object")
		{
			this.data = url;
			this.font = url;
			this.format = "json";
			this.encoding = "json";
		}
		// URL
		else
		{
			this.encoding = FileSystem.getFileExtension(url);
			this.name = FileSystem.getFileName(url);

			if (this.encoding === "json")
			{
				this.data = JSON.parse(FileSystem.readFile(url));
				this.format = "json";
				this.font = this.data;
			}
			else if (this.encoding === "ttf" || this.encoding === "otf" || this.encoding === "ttc" || this.encoding === "otc")
			{
				this.data = FileSystem.readFileArrayBuffer(url);
				this.format = "arraybuffer";
				this.loadTTF();
			}
		}
	}
}
Font class stores font data, font data can be stored as an  json or as a TTF file (stored in Base64).

Font objects are used to draw text using the TextMesh object and/or generate text bitmap.

@class Font
@extends {Resource}
@module Resources
@param {string} url URL to font file