protected Tuple <Matrix3D, Matrix3D> GetPreMatrix(Table.Table table, Origin origin, bool asRightHanded) { switch (origin) { case Origin.Original: return(asRightHanded ? new Tuple <Matrix3D, Matrix3D>(Matrix3D.RightHanded, null) : new Tuple <Matrix3D, Matrix3D>(Matrix3D.Identity, null)); case Origin.Global: var m = GetTransformationMatrix(table); return(asRightHanded ? new Tuple <Matrix3D, Matrix3D>(m.Item1.Multiply(Matrix3D.RightHanded), m.Item2?.Multiply(Matrix3D.RightHanded)) : m); default: throw new ArgumentOutOfRangeException(nameof(origin), origin, "Unknown origin " + origin); } }
protected abstract float BaseHeight(Table.Table table);