public void InitCameraManager()
    {
        GameObject camera = new GameObject("GameCamera", typeof(Camera));

        camerarotatesphere = camera.AddComponent <CameraRotateSphere>();
        camera.transform.SetParent(transform);

        QMsg Normalmsg = new ModelMsg()
        {
            EventID = (int)Model_E.Normal, modelevent = Model_E.SetCamera, selfcamera = camera.GetComponent <Camera>()
        };

        SendMsg(Normalmsg);
        QMsg Usermsg = new ModelMsg()
        {
            EventID = (int)Model_E.UserImport, modelevent = Model_E.SetCamera, selfcamera = camera.GetComponent <Camera>()
        };

        SendMsg(Usermsg);
        QMsg normalPointmsg = new PointMsg()
        {
            EventID = (int)Point_E.Normal, controllmode = PointControll_E.SetCamra, selfcamra = camera.GetComponent <Camera>()
        };

        SendMsg(normalPointmsg);
        QMsg userPointmsg = new PointMsg()
        {
            EventID = (int)Point_E.Userimport, controllmode = PointControll_E.SetCamra, selfcamra = camera.GetComponent <Camera>()
        };

        SendMsg(userPointmsg);

        RegetsSelfEvent();
    }
Esempio n. 2
0
    protected override void LoadModel(ModelMsg obj)
    {
        ReleaseOld();
        totle++;
        ModelMsg mm = obj;

        string stlpath = Tool.LocalModelonSavePath + mm.pdata.ID + Tool.STLfiledir;// mm.pdata.LocalUserModelPath;//

        if (!Tool.CheckFileExist(stlpath))
        {
            Debug.LogError("根据ID查找模型 不存在,加载默认模型");
        }
        GameObject realmodel = new GameObject("UserImprot" + totle, typeof(STL));

        realmodel.transform.SetParent(transform);

        STL stlloalder = realmodel.GetComponent <STL>();

        stlloalder.CreateInstance(stlpath, str => { }, go =>
        {
            AdjustmentChild(go, PlayerDataCenter.Instance.MaterialMap[Tool.MatarialsUse.UserimportModel]);
            LoadGizmopointer(mm.pointmap, go.transform, SelfPointMode);
            go.transform.SetParent(realmodel.transform);
            go.transform.localScale = Vector3.one * Tool.UserImportScaler;
        });
        lastrealmodel = realmodel;
    }
Esempio n. 3
0
    public void CreateSimulationModel()
    {
        if (m_Colliding)
        {
            return;
        }
        GameObject simModel = Instantiate(SimulationModel, transform.position, transform.rotation);

        simModel.name = SimulationModel.name;
        InputManager.Instance.ModelSpawn_Controller.Operating = false;
        Destroy(InputManager.Instance.Selector_Tool.CurrentPreviewModel.gameObject);
        InputManager.Instance.Selector_Tool.CurrentPreviewModel = null;
        if (SimulationModel.GetComponent <ROSObject>() == null)
        {
            return;
        }
        // publish a message to add the object to ros node
        List <string> objects = new List <string>();

        objects.Add(SimulationModel.name);
        List <Vector3> positions = new List <Vector3>();

        positions.Add(GazeboUtility.UnityPositionToGazebo(transform.position));
        ModelMsg msg = new ModelMsg(1, 1, objects, positions);

        ROSBridge.Instance.Publish(RoboyModelPublisher.GetMessageTopic(), msg);
        RoboyManager.Instance.AddRoboy(simModel.transform);
    }
    QMsg CreatMsg(Model_E eventid, Model_E modleevent = Model_E.Begin, ModelTranslate_E modeltranslate = ModelTranslate_E.Begin, float valuedir = 0)
    {
        QMsg modelmsg = new ModelMsg()
        {
            EventID = (int)eventid, modelevent = modleevent, translateevent = modeltranslate, Changdir = valuedir
        };

        return(modelmsg);
    }
    public void OnLeveThisPage()
    {
        QMsg modelmsg = new ModelMsg()
        {
            EventID = (int)Model_E.UserImport, modelevent = Model_E.Ido
        };

        ModelManager.Instance.SendMsg(modelmsg);
    }
    /// 平移
    void OnTranslateChange(ModelTranslate_E mte)
    {
        QMsg modelmsg = new ModelMsg()
        {
            EventID = (int)Model_E.UserImport, translateevent = mte
        };

        ModelManager.Instance.SendMsg(modelmsg);
    }
    ///XYZ及等比缩放
    void OnScalerSliderChange(ModelTranslate_E mte, float endvalue)
    {
        QMsg modelmsg = new ModelMsg()
        {
            EventID = (int)Model_E.Normal, translateevent = mte, Changdir = endvalue
        };

        ModelManager.Instance.SendMsg(modelmsg);
    }
    ///旋转
    void OnRotateSliderChange(float endvalue)
    {
        QMsg modelmsg = new ModelMsg()
        {
            EventID = (int)Model_E.UserImport, translateevent = ModelTranslate_E.Rotate, Changdir = endvalue
        };

        ModelManager.Instance.SendMsg(modelmsg);
    }
    public void OnEnterThisPage()
    {
        ChoisePanel(firstchoise);
        QMsg modelmsg = new ModelMsg()
        {
            EventID = (int)Model_E.UserImport, modelevent = Model_E.Rotate
        };

        ModelManager.Instance.SendMsg(modelmsg);
    }
    protected override void ProcessMsg(int eventId, QMsg msg)
    {
        ModelMsg mm = msg as ModelMsg;

        switch (eventId)
        {
        case (int)Model_E.Normal:
            normalmodelcontroller.HandlerEvent(mm);
            break;

        case (int)Model_E.UserImport:
            userimportcontroller.HandlerEvent(mm);
            break;

        default:
            break;
        }
    }
    protected override void LoadModel(ModelMsg obj)
    {
        ReleaseOld();
        totle++;
        ModelMsg mm = obj;

        string stlpath = Tool.LocalNormalModelPath + mm.pdata.md5 + Tool.STLfiledir;// mm.pdata.Normalmodelpath;//

        GameObject realmodel = new GameObject("NormalModel" + totle, typeof(STL));

        realmodel.transform.SetParent(transform);

        STL stlloalder = realmodel.GetComponent <STL>();

        stlloalder.CreateInstance(stlpath, str => { }, go =>
        {
            AdjustmentChild(go, PlayerDataCenter.Instance.MaterialMap[Tool.MatarialsUse.NormalModel]);
            LoadGizmopointer(mm.pointmap, go.transform, SelfPointMode);
            go.transform.SetParent(realmodel.transform);
            go.transform.localScale = Vector3.one * Tool.UserImportScaler;
            selforiginscaler        = transform.localScale.x;
        });


        Transform cameratarget = new GameObject("Camratarget").transform;

        cameratarget.SetParent(realmodel.transform);
        cameratarget.localPosition = Vector3.zero;

        QMsg msg = new CameraControllMsg()
        {
            EventID            = (int)Camera_E.Begin,
            cameraevent        = Camera_E.Target,
            camerarotatetarget = cameratarget
        };

        CameraManager.Instance.SendMsg(msg);


        lastrealmodel = realmodel;
    }
Esempio n. 12
0
    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            List <string> objects = new List <string>();
            objects.Add("Roboy_simplified");
            List <Vector3> positions = new List <Vector3>();
            positions.Add(GazeboUtility.UnityPositionToGazebo(new Vector3(2.3123f, 2.2311f, 0.5f)));
            ModelMsg msg = new ModelMsg(1, 1, objects, positions);
            Debug.Log(msg.ToYAMLString());
            ROSBridge.Instance.Publish(RoboyModelPublisher.GetMessageTopic(), msg);
        }
        else if (Input.GetKeyDown(KeyCode.Escape))
        {
            List <string> objects = new List <string>();
            objects.Add("Roboy_simplified");
            List <Vector3> positions = new List <Vector3>();
            positions.Add(Vector3.zero);
            ModelMsg msg = new ModelMsg(0, 1, objects, positions);

            ROSBridge.Instance.Publish(RoboyModelPublisher.GetMessageTopic(), msg);
        }
    }
    void Start()
    {
        Button Rotate    = transform.Find("RotateButton").GetComponent <Button>();
        Button translate = transform.Find("TranslateButton").GetComponent <Button>();
        Button scaler    = transform.Find("ScalerButton").GetComponent <Button>();

        Rotate.onClick.AddListener(() =>
        {
            ChoisePanel(Rotate);
            QMsg modelmsg = new ModelMsg()
            {
                EventID = (int)Model_E.UserImport, modelevent = Model_E.Rotate
            };
            ModelManager.Instance.SendMsg(modelmsg);
        });
        translate.onClick.AddListener(() =>
        {
            QMsg modelmsg = new ModelMsg()
            {
                EventID = (int)Model_E.UserImport, modelevent = Model_E.translate
            };
            ModelManager.Instance.SendMsg(modelmsg);
            ChoisePanel(translate);
        });
        scaler.onClick.AddListener(() =>
        {
            QMsg Usermodelmsg = new ModelMsg()
            {
                EventID = (int)Model_E.UserImport, modelevent = Model_E.Scaler
            };
            ModelManager.Instance.SendMsg(Usermodelmsg);
            QMsg Normalmodelmsg = new ModelMsg()
            {
                EventID = (int)Model_E.Normal, modelevent = Model_E.Scaler
            };
            ModelManager.Instance.SendMsg(Normalmodelmsg);
            ChoisePanel(scaler);
        });

        Transform RotatePanel    = transform.Find("RotatePanel");
        Transform TranslatePanel = transform.Find("TranslatePanel");
        Transform ScalerPanel    = transform.Find("ScalerPanel");


        RegestToMap(Rotate, RotatePanel.gameObject);
        RegestToMap(translate, TranslatePanel.gameObject);
        RegestToMap(scaler, ScalerPanel.gameObject);

        Slider     S_rotate    = RotatePanel.GetComponentInChildren <Slider>();
        InputField I_rotate    = RotatePanel.GetComponentInChildren <InputField>();
        Slider     S_XYZscaler = ScalerPanel.transform.Find("XYZPanel").GetComponentInChildren <Slider>();
        InputField I_XYZscaler = ScalerPanel.transform.Find("XYZPanel").GetComponentInChildren <InputField>();

        Slider     S_Xscaler = ScalerPanel.transform.Find("XPanel").GetComponentInChildren <Slider>();
        InputField I_Xscaler = ScalerPanel.transform.Find("XPanel").GetComponentInChildren <InputField>();

        Slider     S_Yscaler = ScalerPanel.transform.Find("YPanel").GetComponentInChildren <Slider>();
        InputField I_Yscaler = ScalerPanel.transform.Find("YPanel").GetComponentInChildren <InputField>();

        Slider     S_Zscaler = ScalerPanel.transform.Find("ZPanel").GetComponentInChildren <Slider>();
        InputField I_Zscaler = ScalerPanel.transform.Find("ZPanel").GetComponentInChildren <InputField>();


        Button B_up    = TranslatePanel.Find("UpButton").GetComponent <Button>();
        Button B_down  = TranslatePanel.Find("DownButton").GetComponent <Button>();
        Button B_mid   = TranslatePanel.Find("MidButton").GetComponent <Button>();
        Button B_right = TranslatePanel.Find("RightButton").GetComponent <Button>();
        Button B_left  = TranslatePanel.Find("LeftButton").GetComponent <Button>();

        S_rotate.onValueChanged.AddListener((endvalue) =>
        {
            OnRotateSliderChange(endvalue);
            I_rotate.text = endvalue.ToString();
        });
        I_rotate.onValueChanged.AddListener((str) =>
        {
            try
            {
                float a        = float.Parse(str);
                S_rotate.value = a;
            }
            catch (System.Exception)
            {
                I_rotate.text = S_rotate.value.ToString();
                throw;
            }
        });


        S_XYZscaler.onValueChanged.AddListener((endvalue) =>
        {
            OnScalerSliderChange(ModelTranslate_E.Scaler, endvalue);
            I_XYZscaler.text = endvalue.ToString();
        });
        I_XYZscaler.onValueChanged.AddListener((str) =>
        {
            try
            {
                float a           = float.Parse(str);
                S_XYZscaler.value = a;
            }
            catch (System.Exception)
            {
                I_XYZscaler.text = S_XYZscaler.value.ToString();
                throw;
            }
        });

        S_Xscaler.onValueChanged.AddListener((endvalue) =>
        {
            OnScalerSliderChange(ModelTranslate_E.ScalerX, endvalue);
            I_Xscaler.text = endvalue.ToString();
        });
        I_Xscaler.onValueChanged.AddListener((str) =>
        {
            try
            {
                float a         = float.Parse(str);
                S_Xscaler.value = a;
            }
            catch (System.Exception)
            {
                I_Xscaler.text = S_Xscaler.value.ToString();
                throw;
            }
        });

        S_Yscaler.onValueChanged.AddListener((endvalue) =>
        {
            OnScalerSliderChange(ModelTranslate_E.ScalerY, endvalue);
            I_Yscaler.text = endvalue.ToString();
        });
        I_Yscaler.onValueChanged.AddListener((str) =>
        {
            try
            {
                float a         = float.Parse(str);
                S_Yscaler.value = a;
            }
            catch (System.Exception)
            {
                I_Yscaler.text = S_Yscaler.value.ToString();
                throw;
            }
        });

        S_Zscaler.onValueChanged.AddListener((endvalue) =>
        {
            OnScalerSliderChange(ModelTranslate_E.ScalerZ, endvalue);
            I_Zscaler.text = endvalue.ToString();
        });
        I_Zscaler.onValueChanged.AddListener((str) =>
        {
            try
            {
                float a         = float.Parse(str);
                S_Zscaler.value = a;
            }
            catch (System.Exception)
            {
                I_Zscaler.text = S_Zscaler.value.ToString();
                throw;
            }
        });


        B_up.onClick.AddListener(() => { OnTranslateChange(ModelTranslate_E.Up); });
        B_down.onClick.AddListener(() => { OnTranslateChange(ModelTranslate_E.Down); });
        B_right.onClick.AddListener(() => { OnTranslateChange(ModelTranslate_E.Right); });
        B_left.onClick.AddListener(() => { OnTranslateChange(ModelTranslate_E.Left); });

        firstchoise = Rotate;
        ChoisePanel(firstchoise);
    }
Esempio n. 14
0
    /// <summary>
    /// 根据发送来的消息回调刷新
    /// </summary>
    /// <param name="obj"></param>
    public override void HandlerEvent(QMsg obj)
    {
        ModelMsg mm = obj as ModelMsg;
        //主模型过程控制
        Model_E modelx = mm.modelevent;
        //modletranslate方式控制
        ModelTranslate_E mte = mm.translateevent;
        //传来的数据
        float value = mm.Changdir;

        //模型状态使用
        switch (modelx)
        {
        case Model_E.LoadModel:
            LoadModel(mm);
            break;

        case Model_E.Hidden:
            Hidden();
            break;

        case Model_E.Display:
            Display();
            break;

        case Model_E.SetCamera:
            selfcamera = mm.selfcamera;
            break;

        case Model_E.translate:
        case Model_E.Rotate:
        case Model_E.Scaler:
            modelcontrollmode = modelx;
            break;

        default:
            break;
        }

        //调整(位移旋转缩放)使用
        tranlatmode = mte;
        switch (mte)
        {
        case ModelTranslate_E.Up:
        case ModelTranslate_E.Down:
        case ModelTranslate_E.Left:
        case ModelTranslate_E.Right:
            TranslateCallback(mte);
            break;

        case ModelTranslate_E.Scaler:
        case ModelTranslate_E.ScalerX:
        case ModelTranslate_E.ScalerY:
        case ModelTranslate_E.ScalerZ:
            ScalerCallback(mte, value);
            break;

        case ModelTranslate_E.Rotate:
            RotateCallback(value);
            break;

        default:
            break;
        }

        //pointer使用
    }
Esempio n. 15
0
 public static string ToYAMLString(ModelMsg msg)
 {
     return(msg.ToYAMLString());
 }
Esempio n. 16
0
 /// <summary>
 /// 加载模型
 /// </summary>
 /// <param name="stlpath"></param>
 protected abstract void LoadModel(ModelMsg obj);