void Start()
    {
        // calculate positions for the LineRenderer (cannot assume Editor script has been invoked to do this)
        GameObject parent = transform.parent.gameObject;

        if (parent != null)
        {
            EllipseBase ellipseBase = parent.GetComponent <EllipseBase>();
            if (ellipseBase != null)
            {
                centerNBody = ellipseBase.centerObject.GetComponent <NBody>();
                orbitP      = ellipseBase;
            }
            else
            {
                OrbitUniversal orbitU = parent.GetComponent <OrbitUniversal>();
                if (orbitU != null)
                {
                    centerNBody = orbitU.GetCenterNBody();
                    orbitP      = orbitU;
                }
                else
                {
                    OrbitHyper orbitHyper = parent.GetComponent <OrbitHyper>();

                    if (orbitHyper != null)
                    {
                        centerNBody = orbitHyper.centerObject.GetComponent <NBody>();
                        orbitP      = orbitHyper;
                    }
                    else
                    {
                        Debug.LogWarning("Parent object must have OrbitEllipse or OrbitHyper - cannot compute positions for line");
                    }
                }
            }
        }
        else
        {
            Debug.LogWarning("No parent object - cannot compute positions for line");
        }
        if (centerNBody == null)
        {
            Debug.LogError("Parent must have an NBody");
        }
        lineR = GetComponent <LineRenderer>();
        lineR.positionCount = numPoints;
    }