60 lines
1.2 KiB
C#
60 lines
1.2 KiB
C#
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;
|
|
}
|
|
|
|
}
|
|
}
|