public void RotateAround(Vec3 target, Quat rotation) { double dist = VecX.Distance(m_position, target); m_rotation *= rotation; m_position = m_rotation * new Vec3(0, 0, -dist) + target; }
public void CenterRadius(out T center, out double radius) { center = new T(); int dim = p0.Dimension; for (int i = 0; i < dim; i++) { center[i] = (p0[i] + p1[i]) / 2; } radius = VecX.Distance(center, p0); }
public void CenterRadius(out T center, out double radius) { center = new T(); int dim = p.Dimension; for (int i = 0; i < dim; i++) { center[i] = p[i] + d[i] * 0.5; } radius = VecX.Distance(center, p); }
public void CenterRadius(out T center, out double radius) { center = new T(); int dim = p0.Dimension; for (int i = 0; i < dim; i++) { center[i] = (p0[i] + p1[i] + p2[i] + p3[i]) / 4; } radius = VecX.Distance(center, p0); radius = Math.Max(radius, VecX.Distance(center, p1)); radius = Math.Max(radius, VecX.Distance(center, p2)); radius = Math.Max(radius, VecX.Distance(center, p3)); }