71 lines
1.7 KiB
C#
71 lines
1.7 KiB
C#
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<Point>
|
|
{
|
|
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;
|
|
|
|
/// <summary>
|
|
/// 刷新点的位置,即移动点。当该点是某个几何体的从动点时
|
|
/// (即点坐标由几何体其他点约束或点参数已经在创建几何体时定义)
|
|
/// 请不要再次进行定义,程序将自行忽略此处的代码。
|
|
/// </summary>
|
|
/// <param name="tick">当前游戏刻</param>
|
|
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;
|
|
}
|
|
|
|
|
|
|
|
}
|
|
}
|