Ejemplo n.º 1
0
    public override void UpdateModel()
    {
        if (ActionObjectMetadata.ObjectModel == null)
        {
            return;
        }
        Vector3?dimensions = null;

        switch (ActionObjectMetadata.ObjectModel.Type)
        {
        case ObjectModel.TypeEnum.Box:
            dimensions = TransformConvertor.ROSToUnityScale(new Vector3((float)ActionObjectMetadata.ObjectModel.Box.SizeX, (float)ActionObjectMetadata.ObjectModel.Box.SizeY, (float)ActionObjectMetadata.ObjectModel.Box.SizeZ));
            break;

        case ObjectModel.TypeEnum.Sphere:
            dimensions = TransformConvertor.ROSToUnityScale(new Vector3((float)ActionObjectMetadata.ObjectModel.Sphere.Radius, (float)ActionObjectMetadata.ObjectModel.Sphere.Radius, (float)ActionObjectMetadata.ObjectModel.Sphere.Radius));
            break;

        case ObjectModel.TypeEnum.Cylinder:
            dimensions = TransformConvertor.ROSToUnityScale(new Vector3((float)ActionObjectMetadata.ObjectModel.Cylinder.Radius, (float)ActionObjectMetadata.ObjectModel.Cylinder.Radius, (float)ActionObjectMetadata.ObjectModel.Cylinder.Height));
            break;
        }
        if (dimensions != null)
        {
            Model.transform.localScale = new Vector3(dimensions.Value.x, dimensions.Value.y, dimensions.Value.z);
        }
    }
Ejemplo n.º 2
0
    public void CreateModel()
    {
        if (ActionObjectMetadata.ObjectModel == null || ActionObjectMetadata.ObjectModel.Type == IO.Swagger.Model.ObjectModel.TypeEnum.None)
        {
            Model = Instantiate(CubePrefab, Visual.transform);
            Visual.transform.localScale = new Vector3(0.05f, 0.01f, 0.05f);
        }
        else
        {
            switch (ActionObjectMetadata.ObjectModel.Type)
            {
            case IO.Swagger.Model.ObjectModel.TypeEnum.Box:
                Model = Instantiate(CubePrefab, Visual.transform);
                Visual.transform.localScale = TransformConvertor.ROSToUnityScale(new Vector3((float)ActionObjectMetadata.ObjectModel.Box.SizeX, (float)ActionObjectMetadata.ObjectModel.Box.SizeY, (float)ActionObjectMetadata.ObjectModel.Box.SizeZ));
                break;

            case IO.Swagger.Model.ObjectModel.TypeEnum.Cylinder:
                Model = Instantiate(CylinderPrefab, Visual.transform);
                Visual.transform.localScale = new Vector3((float)ActionObjectMetadata.ObjectModel.Cylinder.Radius, (float)ActionObjectMetadata.ObjectModel.Cylinder.Height, (float)ActionObjectMetadata.ObjectModel.Cylinder.Radius);
                break;

            case IO.Swagger.Model.ObjectModel.TypeEnum.Sphere:
                Model = Instantiate(SpherePrefab, Visual.transform);
                Visual.transform.localScale = new Vector3((float)ActionObjectMetadata.ObjectModel.Sphere.Radius, (float)ActionObjectMetadata.ObjectModel.Sphere.Radius, (float)ActionObjectMetadata.ObjectModel.Sphere.Radius);
                break;

            default:
                Model = Instantiate(CubePrefab, Visual.transform);
                Visual.transform.localScale = new Vector3(0.05f, 0.01f, 0.05f);
                break;
            }
        }
        if (IsRobot())
        {
            Model.tag = "Robot";
        }
        gameObject.GetComponent <BindParentToChild>().ChildToBind = Model;
        Model.GetComponent <OnClickCollider>().Target             = gameObject;
        Model.transform.localScale = new Vector3(1, 1, 1);
        modelRenderer  = Model.GetComponent <Renderer>();
        outlineOnClick = gameObject.GetComponent <OutlineOnClick>();
        outlineOnClick.InitRenderers(new List <Renderer>()
        {
            modelRenderer
        });
    }
Ejemplo n.º 3
0
    public override void CreateModel(CollisionModels customCollisionModels = null)
    {
        if (ActionObjectMetadata.ObjectModel == null || ActionObjectMetadata.ObjectModel.Type == IO.Swagger.Model.ObjectModel.TypeEnum.None)
        {
            Model = Instantiate(CubePrefab, Visual.transform);
            Model.transform.localScale = new Vector3(0.05f, 0.01f, 0.05f);
        }
        else
        {
            switch (ActionObjectMetadata.ObjectModel.Type)
            {
            case IO.Swagger.Model.ObjectModel.TypeEnum.Box:
                Model = Instantiate(CubePrefab, Visual.transform);

                if (customCollisionModels == null)
                {
                    Model.transform.localScale = TransformConvertor.ROSToUnityScale(new Vector3((float)ActionObjectMetadata.ObjectModel.Box.SizeX, (float)ActionObjectMetadata.ObjectModel.Box.SizeY, (float)ActionObjectMetadata.ObjectModel.Box.SizeZ));
                }
                else
                {
                    foreach (IO.Swagger.Model.Box box in customCollisionModels.Boxes)
                    {
                        if (box.Id == ActionObjectMetadata.Type)
                        {
                            Model.transform.localScale = TransformConvertor.ROSToUnityScale(new Vector3((float)box.SizeX, (float)box.SizeY, (float)box.SizeZ));
                            break;
                        }
                    }
                }
                break;

            case IO.Swagger.Model.ObjectModel.TypeEnum.Cylinder:
                Model = Instantiate(CylinderPrefab, Visual.transform);
                if (customCollisionModels == null)
                {
                    Model.transform.localScale = new Vector3((float)ActionObjectMetadata.ObjectModel.Cylinder.Radius, (float)ActionObjectMetadata.ObjectModel.Cylinder.Height / 2, (float)ActionObjectMetadata.ObjectModel.Cylinder.Radius);
                }
                else
                {
                    foreach (IO.Swagger.Model.Cylinder cylinder in customCollisionModels.Cylinders)
                    {
                        if (cylinder.Id == ActionObjectMetadata.Type)
                        {
                            Model.transform.localScale = new Vector3((float)cylinder.Radius, (float)cylinder.Height, (float)cylinder.Radius);
                            break;
                        }
                    }
                }
                break;

            case IO.Swagger.Model.ObjectModel.TypeEnum.Sphere:
                Model = Instantiate(SpherePrefab, Visual.transform);
                if (customCollisionModels == null)
                {
                    Model.transform.localScale = new Vector3((float)ActionObjectMetadata.ObjectModel.Sphere.Radius, (float)ActionObjectMetadata.ObjectModel.Sphere.Radius, (float)ActionObjectMetadata.ObjectModel.Sphere.Radius);
                }
                else
                {
                    foreach (IO.Swagger.Model.Sphere sphere in customCollisionModels.Spheres)
                    {
                        if (sphere.Id == ActionObjectMetadata.Type)
                        {
                            Model.transform.localScale = new Vector3((float)sphere.Radius, (float)sphere.Radius, (float)sphere.Radius);
                            break;
                        }
                    }
                }
                break;

            case ObjectModel.TypeEnum.Mesh:
                MeshImporter.Instance.OnMeshImported += OnModelLoaded;
                MeshImporter.Instance.LoadModel(ActionObjectMetadata.ObjectModel.Mesh, GetId());

                Model = Instantiate(CubePrefab, Visual.transform);
                Model.transform.localScale = new Vector3(0.05f, 0.01f, 0.05f);
                break;

            default:
                Model = Instantiate(CubePrefab, Visual.transform);
                Model.transform.localScale = new Vector3(0.05f, 0.01f, 0.05f);
                break;
            }
        }
        //if (IsRobot()) {
        //    Model.tag = "Robot";
        //}

        gameObject.GetComponent <BindParentToChild>().ChildToBind = Model;
        Collider = Model.GetComponent <Collider>();
        Colliders.Add(Collider);
        Model.GetComponent <OnClickCollider>().Target = gameObject;

        outlineOnClick = gameObject.GetComponent <OutlineOnClick>();

        aoRenderers.Clear();
        aoRenderers.AddRange(Model.GetComponentsInChildren <Renderer>(true));

        outlineOnClick.InitRenderers(aoRenderers);
    }
Ejemplo n.º 4
0
    public override void CreateModel(CollisionModels customCollisionModels = null)
    {
        if (ActionObjectMetadata.ObjectModel == null || ActionObjectMetadata.ObjectModel.Type == IO.Swagger.Model.ObjectModel.TypeEnum.None)
        {
            Model = Instantiate(CubePrefab, Visual.transform);
            Model.transform.localScale = new Vector3(0.05f, 0.01f, 0.05f);
        }
        else
        {
            switch (ActionObjectMetadata.ObjectModel.Type)
            {
            case IO.Swagger.Model.ObjectModel.TypeEnum.Box:
                Model = Instantiate(CubePrefab, Visual.transform);

                if (customCollisionModels == null)
                {
                    Model.transform.localScale = TransformConvertor.ROSToUnityScale(new Vector3((float)ActionObjectMetadata.ObjectModel.Box.SizeX, (float)ActionObjectMetadata.ObjectModel.Box.SizeY, (float)ActionObjectMetadata.ObjectModel.Box.SizeZ));
                }
                else
                {
                    foreach (IO.Swagger.Model.Box box in customCollisionModels.Boxes)
                    {
                        if (box.Id == ActionObjectMetadata.Type)
                        {
                            Model.transform.localScale = TransformConvertor.ROSToUnityScale(new Vector3((float)box.SizeX, (float)box.SizeY, (float)box.SizeZ));
                            break;
                        }
                    }
                }
                break;

            case IO.Swagger.Model.ObjectModel.TypeEnum.Cylinder:
                Model = Instantiate(CylinderPrefab, Visual.transform);
                if (customCollisionModels == null)
                {
                    Model.transform.localScale = new Vector3((float)ActionObjectMetadata.ObjectModel.Cylinder.Radius, (float)ActionObjectMetadata.ObjectModel.Cylinder.Height / 2, (float)ActionObjectMetadata.ObjectModel.Cylinder.Radius);
                }
                else
                {
                    foreach (IO.Swagger.Model.Cylinder cylinder in customCollisionModels.Cylinders)
                    {
                        if (cylinder.Id == ActionObjectMetadata.Type)
                        {
                            Model.transform.localScale = new Vector3((float)cylinder.Radius, (float)cylinder.Height, (float)cylinder.Radius);
                            break;
                        }
                    }
                }
                break;

            case IO.Swagger.Model.ObjectModel.TypeEnum.Sphere:
                Model = Instantiate(SpherePrefab, Visual.transform);
                if (customCollisionModels == null)
                {
                    Model.transform.localScale = new Vector3((float)ActionObjectMetadata.ObjectModel.Sphere.Radius, (float)ActionObjectMetadata.ObjectModel.Sphere.Radius, (float)ActionObjectMetadata.ObjectModel.Sphere.Radius);
                }
                else
                {
                    foreach (IO.Swagger.Model.Sphere sphere in customCollisionModels.Spheres)
                    {
                        if (sphere.Id == ActionObjectMetadata.Type)
                        {
                            Model.transform.localScale = new Vector3((float)sphere.Radius, (float)sphere.Radius, (float)sphere.Radius);
                            break;
                        }
                    }
                }
                break;

            default:
                Model = Instantiate(CubePrefab, Visual.transform);
                Model.transform.localScale = new Vector3(0.05f, 0.01f, 0.05f);
                break;
            }
        }
        if (IsRobot())
        {
            Model.tag = "Robot";
        }
        gameObject.GetComponent <BindParentToChild>().ChildToBind = Model;
        Collider = Model.GetComponent <Collider>();
        Model.GetComponent <OnClickCollider>().Target = gameObject;
        modelRenderer  = Model.GetComponent <Renderer>();
        modelMaterial  = modelRenderer.material;
        outlineOnClick = gameObject.GetComponent <OutlineOnClick>();
        outlineOnClick.InitRenderers(new List <Renderer>()
        {
            modelRenderer
        });
        Model.AddComponent <GizmoOutlineHandler>().OutlineOnClick = outlineOnClick;
    }