Пример #1
0
        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;
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }
Пример #4
0
        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));
        }