using StgSharp.Math; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace StgSharp.Geometries { public abstract class ICoord { private Matrix44 coordMat; private Matrix44 origin; public ICoord() { } //A matrix can convert vertex to global coord. public Matrix44 GlobalCoordTransformation { get { return coordMat * origin; } } public vec3d Origin { get => origin.colum3.XYZ; internal set => origin.colum3.XYZ = value; } public vec3d X_axis { get => coordMat.colum0.XYZ; internal set => coordMat.colum0.XYZ = value; } public vec3d Y_axis { get => coordMat.colum1.XYZ; internal set => coordMat.colum1.XYZ = value; } public vec3d Z_axis { get => coordMat.colum2.XYZ; set => coordMat.colum2.XYZ = value; } protected ref Matrix44 CoordMat { get => ref coordMat; } } }