using StgSharp; using StgSharp.Math; using System; using System.Collections.Generic; using System.Drawing; using System.Runtime.InteropServices; using System.Text; namespace StgSharp.Geometries { public unsafe class Point : INode { internal vec3d* positionPtr; internal Point(vec3d* ptr) { positionPtr = ptr; } public vec3d Position { get { return *positionPtr; } set { *positionPtr = value; } } public float X { get { return (*this.positionPtr).X; } set { (*this.positionPtr).X = value; } } public float Y { get { return (*this.positionPtr).Y; } set { (*this.positionPtr).Y = value; } } public float Z { get { return (*this.positionPtr).Z; } set { (*this.positionPtr).Z = value; } } internal readonly bool isVertex; public bool IsVertex => isVertex; /// /// 刷新点的位置,即移动点。当该点是某个几何体的从动点时 /// (即点坐标由几何体其他点约束或点参数已经在创建几何体时定义) /// 请不要再次进行定义,程序将自行忽略此处的代码。 /// /// 当前游戏刻 public virtual void Update(uint tick) {} public bool IsInGeometry(IPlainGeometry geo) { throw new NotImplementedException(); } public bool IsOnPlain(IPlainGeometry geo) { return (*this.positionPtr) * geo.GetPlain().plainParameter == 1; } } }