public override void Create()
        {
            base.Create();

            backgroundGO = GameObjectFactory.CreateDiscGO(rootGO.GetName() + "_bg",
                                                          radius, bgColor, true);
            MaterialUtil.DisableShadows(backgroundGO);
            backgroundGO.RotateD(Vector3f.AxisX, -90.0f);   // make vertical
            AppendNewGO(backgroundGO, rootGO, false);

            progressGO = GameObjectFactory.CreateDiscGO(rootGO.GetName() + "_progress",
                                                        radius, completedColor, true);
            progressGO.SetStartAngleDeg(89.0f);
            progressGO.SetEndAngleDeg(90.0f);

            MaterialUtil.DisableShadows(progressGO);
            progressGO.RotateD(Vector3f.AxisX, -90.0f);   // make vertical
            progressGO.Translate(0.001f * Vector3f.AxisY, true);
            AppendNewGO(progressGO, rootGO, false);

            update_geometry();
        }