export all : class Anchor
	public [new x y type mbx mby] : begin
		set this.x x
		set this.y y
		set this.type type
		set this.mbx mbx
		set this.mby mby
	
	static BASE 'base'
	static MARK 'mark'

	static [transform tfm a] : begin
		local x : a.x * tfm.xx + a.y * tfm.yx + tfm.x
		local y : a.x * tfm.xy + a.y * tfm.yy + tfm.y
		if (a.mbx !== nothing && a.mby !== nothing) : then
			local mbx : a.mbx * tfm.xx + a.mby * tfm.yx + tfm.x
			local mby : a.mbx * tfm.xy + a.mby * tfm.yy + tfm.y
			return : new Anchor x y a.type mbx mby
		: else
			return : new Anchor x y a.type
	
	public [transform tfm] : Anchor.transform tfm this