add a pre-kP evaluation function in c

This commit is contained in:
Youmu Liu
2026-04-24 15:46:58 +08:00
parent 2f6617447c
commit 41350b0487
13 changed files with 169 additions and 154 deletions
@@ -36,12 +36,14 @@ namespace StgSharp.Geometries
private bool globalCoordAvailable;
private CoordinationBase localCoordination;
private Matrix44 coordMat;
private GraphicsMatrix coordMat;
public CoordinationBase(CoordinationBase localCoordination)
public CoordinationBase(
CoordinationBase localCoordination
)
{
this.localCoordination = localCoordination;
coordMat = new Matrix44();
coordMat = new GraphicsMatrix();
}
public virtual Point LocalOrigin
@@ -68,11 +70,7 @@ namespace StgSharp.Geometries
set => coordMat.column[3].XYZ = value;
}
protected ref Matrix44 CoordMat
{
[MethodImpl(MethodImplOptions.AggressiveInlining)]
get => ref coordMat;
}
protected ref GraphicsMatrix CoordMat => ref coordMat;
}
}
@@ -38,10 +38,15 @@ namespace StgSharp.Geometries
public class PlainCoordinate : CoordinationBase
{
public PlainCoordinate(CoordinationBase local, Point origin, Vec3 xAxis, Vec3 yAxis)
public PlainCoordinate(
CoordinationBase local,
Point origin,
Vec3 xAxis,
Vec3 yAxis
)
: base(local)
{
CoordMat = Matrix44.Unit;
CoordMat = GraphicsMatrix.Unit;
CoordMat.column[0] = new Vec4(xAxis, 0);
CoordMat.column[1] = new Vec4(yAxis, 0);
@@ -50,8 +55,10 @@ namespace StgSharp.Geometries
LocalOrigin = origin;
}
public static PlainCoordinate StandardPlainCoordination { get; } = new(null, new Point(0, 0, 0),
new Vec3(1, 0, 0), new Vec3(0, 1, 0));
public static PlainCoordinate StandardPlainCoordination { get; } = new(null,
new Point(0, 0, 0),
new Vec3(1, 0, 0),
new Vec3(0, 1, 0));
}
}