daily update on 20240513 by nitload youmu, instancing render added

This commit is contained in:
YoumuLiu
2024-05-13 03:39:54 +08:00
parent 56459deec5
commit a3506c96a3
78 changed files with 2562 additions and 1098 deletions
@@ -10,39 +10,52 @@ namespace StgSharp.Geometries
{
public abstract class ICoord
{
protected Matrix44 coordMat;
protected List<vec4d> pointBuffer;
private Matrix44 coordMat;
private Matrix44 origin;
public ICoord()
{
pointBuffer = new List<vec4d>();
}
public abstract Matrix44 GlobalCoordTransformation
//A matrix can convert vertex to global coord.
public Matrix44 GlobalCoordTransformation
{
get;
get
{
return coordMat * origin;
}
}
public abstract vec3d Origin
public vec3d Origin
{
get;
get => origin.colum3.XYZ;
internal set => origin.colum3.XYZ = value;
}
public abstract vec3d X_axis
public vec3d X_axis
{
get;
get => coordMat.colum0.XYZ;
internal set => coordMat.colum0.XYZ = value;
}
public abstract vec3d Y_axis
public vec3d Y_axis
{
get;
get => coordMat.colum1.XYZ;
internal set => coordMat.colum1.XYZ = value;
}
public abstract vec3d Z_axis
public vec3d Z_axis
{
get;
get => coordMat.colum2.XYZ;
set => coordMat.colum2.XYZ = value;
}
protected ref Matrix44 CoordMat
{
get => ref coordMat;
}
//TODO 几何体构建器需要重写
public T BuildGeometry<T>(params vec4d[] defaultVertex) where T : IGeometry
{
T ret = Activator.CreateInstance<T>();