Exemple #1
0
 private void destroyLayoutObjects()
 {
     foreach (Transform transform in TransformExtensions.GetChildren(base.transform, false))
     {
         UnityEngine.Object.DestroyImmediate(transform.gameObject);
     }
 }
Exemple #2
0
        /// <summary>
        /// Deactivate on Awake.
        /// </summary>
        void Awake()
        {
            Instance = this;

            m_StartingScale = transform.localScale;
            Bounds canvasBounds = RectTransformUtility.CalculateRelativeRectTransformBounds(transform);

            RectTransform rect = GetComponent <RectTransform>();

            m_ObjectBounds = new Vector3(canvasBounds.size.x * rect.localScale.x, canvasBounds.size.y * rect.localScale.y, canvasBounds.size.z * rect.localScale.z);

            // Actually find microphone key in the keyboard
            var dictationButton = TransformExtensions.GetChildRecursive(gameObject.transform, "Dictation");

            if (dictationButton != null)
            {
                var dictationIcon = dictationButton.Find("keyboard_closeIcon");
                if (dictationIcon != null)
                {
                    _recordImage = dictationIcon.GetComponentInChildren <Image>();
                    var material = new Material(_recordImage.material);
                    _defaultColor         = material.color;
                    _recordImage.material = material;
                }
            }

            // Setting the keyboardType to an undefined TouchScreenKeyboardType,
            // which prevents the MRTK keyboard from triggering the system keyboard itself.
            InputField.keyboardType = (TouchScreenKeyboardType)(int.MaxValue);

            // Keep keyboard deactivated until needed
            gameObject.SetActive(false);
        }
Exemple #3
0
        public void SharedShipCreation(ShipEntity shipEntity, PSShip psShip, SimpleManager.GenericDelegate buttonDel)
        {
            this.AddShipButtonDelegate((EventTrigger)shipEntity.clickDetector.GetComponent <EventTrigger>(), buttonDel);
            this.InitializeShipSprites(shipEntity, psShip);
            shipEntity.CreateStickerEntities();
            shipEntity.UpdateFleetFlagIcon();
            this.InitializeShipMaterials(shipEntity, psShip);
            float num1 = 0.0f;
            float num2 = 0.0f;

            if (Object.op_Inequality((Object)((SpriteRenderer)shipEntity.shipExterior.GetComponent <SpriteRenderer>()).get_sprite(), (Object)null))
            {
                Bounds bounds1 = ((SpriteRenderer)shipEntity.shipExterior.GetComponent <SpriteRenderer>()).get_sprite().get_bounds();
                // ISSUE: explicit reference operation
                num1 = (float)((Bounds)@bounds1).get_size().x;
                Bounds bounds2 = ((SpriteRenderer)shipEntity.shipExterior.GetComponent <SpriteRenderer>()).get_sprite().get_bounds();
                // ISSUE: explicit reference operation
                num2 = (float)((Bounds)@bounds2).get_size().y;
            }
            if ((double)num1 > (double)num2)
            {
                TransformExtensions.ScaleByXY((Transform)shipEntity.exteriorSkin.GetComponent <RectTransform>(), 3.2f);
            }
            else
            {
                TransformExtensions.ScaleByXY((Transform)shipEntity.exteriorSkin.GetComponent <RectTransform>(), 3.5f);
            }
            ((Component)shipEntity).get_gameObject().SetActive(true);
        }
Exemple #4
0
    public GameObject GetGameObjectForBullet(GameObject prefab, Vector2 position, Quaternion rotation, GameObject target)
    {
//		// ("prefab" + prefab.name + "position" + position.ToString ());
        //まず取得したいGameObjectのプレハブのインスタンスIDを取得
        int key = prefab.GetInstanceID();

        //Dictionaryに取得したkeyが存在しなければ新たにList<GameObject>を作成してDictionaryに追加
        if (pooledGameObjects.ContainsKey(key) == false)
        {
            pooledGameObjects.Add(key, new List <GameObject> ());
        }

        //取得したGameObjectのprefabを取得
        List <GameObject> gameObjects = pooledGameObjects [key];

        //返すゲームオブジェクト
        GameObject go = null;

        //ある場合
        //使えるオブジェクトがないかListの中身を走査
        for (int i = 0; i < gameObjects.Count; i++)
        {
            //とりあえず上からgameobjectを調べていく
            go = gameObjects [i];

            //現在非アクティブ(未使用)であれば
            if (go.activeInHierarchy == false)
            {
                //位置を設定
                go.transform.position = position;

                //角度を設定
                go.transform.rotation = rotation;

                //※targetに方向をあわせる
                TransformExtensions.LookAt2D(go.transform, target.transform, Vector2.up);

                //これから使うのでactiveにする
                go.SetActive(true);

                //				// ("recycle object");
                //ゲームオブジェクトを返す
                return(go);
            }
        }
        //ない場合
        //使用できるものがないので新たに生成
        go = (GameObject)Instantiate(prefab, position, rotation);
        print("make" + prefab.name + "!!!!!");
        //ObjectPoolゲームオブジェクトの子要素にする
        go.transform.parent = transform;
        //※targetに方向をあわせる
        TransformExtensions.LookAt2D(go.transform, target.transform, Vector2.up);
        //作ったオブジェクトをListに追加
        gameObjects.Add(go);

        //		// ("instantiate object");
        //作ったゲームオブジェクトを返す
        return(go);
    }
Exemple #5
0
    public static GameObject FindSecurely(GameObject self, string name, [Optional, DefaultParameterValue(true)] bool recursive)
    {
        GameObject gameObject = null;
        Transform  transform  = self.transform;
        int        childCount = transform.childCount;

        for (int i = 0; i < childCount; i++)
        {
            Transform child = transform.GetChild(i);
            if (child.gameObject.name == name)
            {
                gameObject = child.gameObject;
                break;
            }
            if (recursive)
            {
                Transform transform3 = TransformExtensions.FindChildRecursively(child, name);
                if (transform3 != null)
                {
                    gameObject = transform3.gameObject;
                    break;
                }
            }
        }
        if (gameObject == null)
        {
            Debug.LogError("GameObject `" + name + "' not found!");
        }
        return(gameObject);
    }
 public void IterateIgnoreNull()
 {
     Assert.Throws(typeof(System.ArgumentNullException), () =>
     {
         TransformExtensions.EnumerateHierarchy(null, new List <Transform>(0));
     });
 }
Exemple #7
0
        public void Visualize()
        {
            if (!isCreated)
            {
                Create();
            }

            markerObject.name = name;

            markerObject.transform.localPosition = TransformExtensions.Ros2Unity(TypeExtensions.PointMsgToVector3(marker.pose.position));
            markerObject.transform.localRotation = TransformExtensions.Ros2Unity(TypeExtensions.QuaternionMsgToQuaternion(marker.pose.orientation));

            markerObject.transform.localScale = TransformExtensions.Ros2UnityScale(TypeExtensions.Vector3MsgToVector3(marker.scale));
            if (marker.type == MessageTypes.Visualization.Marker.CYLINDER)
            {
                markerObject.transform.localScale = new Vector3(markerObject.transform.localScale.x, markerObject.transform.localScale.y / 2, markerObject.transform.localScale.z);
            }

            markerObject.GetComponent <Renderer>().material.SetColor("_Color", TypeExtensions.ColorRGBAToColor(marker.color));

            if (!marker.frame_locked)
            {
                markerObject.transform.parent = null;
            }
        }
 public virtual IEnumerator FollowRoutine(Follower follower)
 {
     do
     {
         Vector3 heading = Vector3.RotateTowards(follower.trs.position, waypoints[follower.currentWaypoint].position, rotaRates[follower.currentWaypoint] * Time.deltaTime, moveRates[follower.currentWaypoint] * Time.deltaTime);
         follower.trs.position = heading;
         follower.trs.rotation = Quaternion.SlerpUnclamped(follower.trs.rotation, waypoints[follower.currentWaypoint].rotation, rotaRates[follower.currentWaypoint] * Time.deltaTime);
         if (follower.trs.position == waypoints[follower.currentWaypoint].position && ((waitForRota[follower.currentWaypoint] && follower.trs.rotation == waypoints[follower.currentWaypoint].rotation) || !waitForRota[follower.currentWaypoint]))
         {
             if (invokeAfterReachedWaypoint[follower.currentWaypoint] != null)
             {
                 invokeAfterReachedWaypoint[follower.currentWaypoint].onClick.Invoke();
             }
             if (follower.currentWaypoint == waypoints.Length - 1)
             {
                 RemoveFollower(follower.trs);
                 yield break;
             }
             if (followClosestWaypoint)
             {
                 follower.currentWaypoint = waypoints.IndexOf(TransformExtensions.GetClosestTransform(waypoints, follower.trs));
             }
             else
             {
                 follower.currentWaypoint++;
             }
         }
         yield return(new WaitForEndOfFrame());
     } while (true);
 }
Exemple #9
0
    pose_m CreatePoseMessage(Transform base_T, Transform goal_T)
    {
        pose_m pose = new pose_m();

        Vector3    pos = goal_T.position - base_T.position;
        Quaternion ori = Quaternion.Inverse(base_T.rotation) * goal_T.rotation;

        ori = TransformExtensions.Unity2Ros(ori);
        pos = TransformExtensions.Unity2Ros(pos);



        Point_msg point = new Point_msg
        {
            x = -pos.y,
            y = pos.x,
            z = pos.z
        };

        float          d          = Mathf.Sqrt(ori.x * ori.x + ori.y * ori.y + ori.z * ori.z + ori.w * ori.w);
        Quaternion_msg quaternion = new Quaternion_msg
        {
            x = ori.x / d,
            y = ori.y / d,
            z = ori.z / d,
            w = ori.w / d
        };

        pose.position    = point;
        pose.orientation = quaternion;

        return(pose);
    }
Exemple #10
0
        protected void Awake()
        {
            this.RectTm = base.GetComponent <RectTransform>();
            Transform[] children = TransformExtensions.GetChildren(this.LockedContentRoot.transform, false);
            for (int i = 0; i < children.Length; i++)
            {
                TransformAnimation item = GameObjectExtensions.AddOrGetComponent <TransformAnimation>(children[i].gameObject);
                this.m_lockedContentTransformAnimations.Add(item);
                RectTransform transform = children[i].GetComponent <RectTransform>();
                this.m_lockedContentRectTransforms.Add(item, transform);
                this.m_lockedContentOriginalAnchoredPositions.Add(item, transform.anchoredPosition);
                Image       image   = children[i].GetComponent <Image>();
                MenuOverlay overlay = GameObjectExtensions.AddOrGetComponent <MenuOverlay>(children[i].gameObject);
                overlay.Image = image;
                this.m_lockedContentImages.Add(item, overlay);
            }
            this.m_dummyRectTmObj           = new GameObject("DummyRectTm").AddComponent <RectTransform>();
            this.m_dummyRectTmObj.sizeDelta = Vector2.zero;
            this.m_dummyRectTmObj.SetParent(this.LockedContentRoot.transform, false);
            this.m_dimmableImages.Clear();
            Image component = this.BackgroundCanvas.GetComponent <Image>();

            this.m_dimmableImages.Add(component);
            this.m_dimmableImageOriginalColors.Add(component, component.color);
            Image[] componentsInChildren = this.OpenContentRoot.GetComponentsInChildren <Image>();
            for (int j = 0; j < componentsInChildren.Length; j++)
            {
                this.m_dimmableImages.Add(componentsInChildren[j]);
                this.m_dimmableImageOriginalColors.Add(componentsInChildren[j], componentsInChildren[j].color);
            }
        }
    void UpdateBounds()
    {
        Bounds b = TransformExtensions.CalculateBounds(_bells);

        _particlePruningBoundsRadius  = b.size.magnitude;
        _particlePruningBoundsOrigin  = b.center;
        _particlePruningBoundsRadius2 = _particlePruningBoundsRadius * _particlePruningBoundsRadius;
    }
Exemple #12
0
    void UpdateDroneOdom(Odometry odom)
    {
        Vector3    pos  = odom.pose.pose.position.ToUnity();
        Quaternion quat = new Quaternion((float)odom.pose.pose.orientation.x, (float)odom.pose.pose.orientation.y, (float)odom.pose.pose.orientation.z, (float)odom.pose.pose.orientation.w);
        Quaternion rot  = TransformExtensions.Ros2Unity(quat);

        Drone.transform.localPosition = pos;
        Drone.transform.localRotation = rot;
    }
Exemple #13
0
 public static void SetStaticRecursively(GameObject self, bool flag)
 {
     self.isStatic = flag;
     Transform[] children = TransformExtensions.GetChildren(self.transform, true);
     for (int i = children.Length - 1; i >= 0; i--)
     {
         children[i].gameObject.isStatic = flag;
     }
 }
Exemple #14
0
 public static void SetLayerRecursively(GameObject self, int layer)
 {
     self.layer = layer;
     Transform[] children = TransformExtensions.GetChildren(self.transform, true);
     for (int i = children.Length - 1; i >= 0; i--)
     {
         children[i].gameObject.layer = layer;
     }
 }
Exemple #15
0
        void HandleSelecting()
        {
            Plane plane = new Plane(trs.forward, centerOptionRange.bounds.center);
            float hitDistance;
            Ray   ray = new Ray(selectorTrs.position, selectorTrs.forward);

            if (plane.Raycast(ray, out hitDistance))
            {
                Vector3          hitPoint         = ray.GetPoint(hitDistance);
                List <Transform> optionTransforms = new List <Transform>();
                for (int i = 0; i < options.Length; i++)
                {
                    Option option = options[i];
                    optionTransforms.Add(option.trs);
                }
                optionTransforms.Add(centerOption.trs);
                Transform closestOptionTrs = TransformExtensions.GetClosestTransform_3D(optionTransforms.ToArray(), hitPoint);
                for (int i = 0; i < optionTransforms.Count - 1; i++)
                {
                    Transform optionTrs = optionTransforms[i];
                    if (closestOptionTrs == optionTrs)
                    {
                        Select(options[i]);
                        return;
                    }
                }
                Select(centerOption);
                //  int optionIndex = 0;
                //  for (float angle = 0; angle < 360; angle += 360f / options.Length)
                //  {
                //      Option option = options[optionIndex];
                //      if (Vector3.Angle(trs.rotation * (selectorTrs.position - centerOptionRange.bounds.center), trs.rotation * VectorExtensions.FromFacingAngle(angle)) <= 360f / options.Length / 2)
                //          Select (option);
                //      optionIndex ++;
                //  }
                // }
            }
            // List<Transform> optionTransforms = new List<Transform>();
            // for (int i = 0; i < options.Length; i ++)
            // {
            //  Option option = options[i];
            //  optionTransforms.Add(option.trs);
            // }
            // optionTransforms.Add(centerOption.trs);
            // Transform closestOptionTrs = selectorTrs.GetClosestTransform_3D(optionTransforms.ToArray());
            // for (int i = 0; i < optionTransforms.Count; i ++)
            // {
            //  Transform optionTrs = optionTransforms[i];
            //  if (closestOptionTrs == optionTrs)
            //  {
            //      Select (options[i]);
            //      return;
            //  }
            // }
            // Select (centerOption);
        }
 // [MenuItem("Window/Refersh Buttons")]
 public static void RefreshButtons()
 {
     foreach (Button butt in TransformExtensions.GetComponents <Button>(Selection.transforms))
     {
         if (butt.primitive == Button.Primitive.Plane)
         {
             butt.CreateSprite(butt.normal);
         }
     }
 }
Exemple #17
0
        public override void Parse(string str)
        {
            base.Parse(str);

            var words = str.Split(',');

            Position             = TransformExtensions.CSV2Vector3(words[16], '|');
            LookAt               = TransformExtensions.CSV2Vector3(words[17], '|');
            TargetObjOrientation = TransformExtensions.CSV2Quaternion(words[18], '|');

            CalculateOrientation();
        }
Exemple #18
0
 private void CreateOverlayIcon()
 {
     if (!((UnityEngine.Object)HarvestWhenReadyOverlayIcon != (UnityEngine.Object)null) && (UnityEngine.Object)GetComponent <AttackableBase>() == (UnityEngine.Object)null)
     {
         HarvestWhenReadyOverlayIcon = Util.KInstantiate(Assets.UIPrefabs.HarvestWhenReadyOverlayIcon, GameScreenManager.Instance.worldSpaceCanvas, null).GetComponent <RectTransform>();
         OccupyArea component  = GetComponent <OccupyArea>();
         Extents    extents    = component.GetExtents();
         KPrefabID  component2 = GetComponent <KPrefabID>();
         TransformExtensions.SetPosition(position: component2.HasTag(GameTags.Hanging) ? new Vector3((float)(extents.x + extents.width / 2) + 0.5f, (float)(extents.y + extents.height)) : new Vector3((float)(extents.x + extents.width / 2) + 0.5f, (float)extents.y), transform: HarvestWhenReadyOverlayIcon.transform);
         RefreshOverlayIcon(null);
     }
 }
Exemple #19
0
    public void SetButtons()
    {
        buttonsInScene = TransformExtensions.FindObjectsWithTag(buttonHolder.transform, "Button");
        int iMax = buttonsInScene.Count;

        for (int i = 0; i < iMax; i++)
        {
            int rng = Random.Range(0, buttonsInScene.Count - 1);
            buttonList.Add(buttonsInScene[rng]);
            buttonsInScene[rng].GetComponentInChildren <Text>().text = (i + 1).ToString();
            //buttonsInScene[rng].SetActive(true);
            buttonsInScene.RemoveAt(rng);
        }
    }
Exemple #20
0
        private void DropStorage()
        {
            //Drop the storage for the chore (which should only contain insulation) when the chore/fetch is cancelled
            List <GameObject> items = storage.items;

            if (items.Count == 0)
            {
                return;
            }
            GameObject go = items[0];

            storage.Drop(go);
            TransformExtensions.SetPosition(go.transform, Grid.CellToPosCBC(Grid.PosToCell(gameObject), Grid.SceneLayer.Ore));
            GameComps.Fallers.Add(go, Vector2.zero);
        }
Exemple #21
0
    public static ProgressBar CreateProgressBar(KMonoBehaviour entity, Func <float> updateFunc)
    {
        ProgressBar progressBar = Util.KInstantiateUI <ProgressBar>(ProgressBarsConfig.Instance.progressBarPrefab, null, false);

        progressBar.SetUpdateFunc(updateFunc);
        progressBar.transform.SetParent(GameScreenManager.Instance.worldSpaceCanvas.transform);
        progressBar.name = ((!((UnityEngine.Object)entity != (UnityEngine.Object)null)) ? string.Empty : (entity.name + "_")) + " ProgressBar";
        progressBar.transform.Find("Bar").GetComponent <Image>().color = ProgressBarsConfig.Instance.GetBarColor("ProgressBar");
        progressBar.Update();
        Vector3  a         = entity.transform.GetPosition() + Vector3.down * 0.5f;
        Building component = entity.GetComponent <Building>();

        TransformExtensions.SetPosition(position: (!((UnityEngine.Object)component != (UnityEngine.Object)null)) ? (a - Vector3.right * 0.5f) : (a - Vector3.right * 0.5f * (float)(component.Def.WidthInCells % 2) + component.Def.placementPivot), transform: progressBar.transform);
        return(progressBar);
    }
Exemple #22
0
 public virtual void DoUpdate()
 {
     if (autoSetRegionCount)
     {
         lineRenderers = lineRenderersParent.GetComponentsInChildren <LineRenderer>();
         Region region;
         if (regions.Length < lineRenderers.Length)
         {
             for (int i = regions.Length; i < lineRenderers.Length; i++)
             {
                 region = new Region();
                 region.lineRenderer     = lineRenderers[i];
                 region.autoSetPositions = true;
                 regions = regions.Add(region);
             }
         }
     }
     if (autoSetLineRenderers)
     {
         lineRenderers = lineRenderersParent.GetComponentsInChildren <LineRenderer>();
         for (int i = 0; i < regions.Length; i++)
         {
             regions[i].lineRenderer = lineRenderers[i];
         }
     }
     while (true)
     {
         indexOfNullPoint = points.IndexOf(null);
         if (indexOfNullPoint == -1)
         {
             break;
         }
         else
         {
             points = points.RemoveAt(indexOfNullPoint);
         }
     }
     foreach (Region region in regions)
     {
         if (region.autoSetPositions)
         {
             for (int i = 0; i < region.lineRenderer.positionCount; i++)
             {
                 region.lineRenderer.SetPosition(i, TransformExtensions.GetClosestTransform_2D(points, region.lineRenderer.GetPosition(i)).position);
             }
         }
     }
 }
        public void UpdateItems()
        {
            TransformExtensions.DestroyAllChildren(listTransform);

            if (ItemsSource != null)
            {
                foreach (object value in ItemsSource())
                {
                    GameObject newItem = GameObjectExtensions.Instantiate(itemPrefab, listTransform);
                    newItem.GetComponent <ListViewItem>().Value     = value;
                    newItem.GetComponent <ListViewItem>().Text.text = ItemTextConverter != null?ItemTextConverter(value) : value?.ToString();

                    newItem.GetComponent <ListViewItem>().Button.onClick.AddListener(() => SelectedItem = newItem);
                }
            }
        }
    public static UnityEngine.Vector3 ToUnity(this Point p, bool ros2Unity = true)
    {
        UnityEngine.Vector3 v = new UnityEngine.Vector3();

        v.x = (float)p.x;
        v.y = (float)p.y;
        v.z = (float)p.z;

        if (ros2Unity)
        {
            return(TransformExtensions.Ros2Unity(v));
        }
        else
        {
            return(v);
        }
    }
        public virtual void AddFollower(Transform followerTrs)
        {
            if (invokeOnStart != null)
            {
                invokeOnStart.onClick.Invoke();
            }
            Follower follower = new Follower();

            follower.trs             = followerTrs;
            follower.currentWaypoint = 0;
            if (followClosestWaypoint)
            {
                follower.currentWaypoint = waypoints.IndexOf(TransformExtensions.GetClosestTransform(waypoints, followerTrs));
            }
            followers = followers.Add(follower);
            StartCoroutine(FollowRoutine(follower));
        }
Exemple #26
0
    public void ClampAngle()
    {
        var min = -60f;
        var max = 80f;

        Assert.AreEqual(TransformExtensions.ClampAngle(10f, min, max), 10f);
        Assert.AreEqual(TransformExtensions.ClampAngle(90f, min, max), 80f);
        Assert.AreEqual(TransformExtensions.ClampAngle(179f, min, max), 80f);
        // Assert.AreEqual(TransformExtensions.ClampAngle(180f, min, max), 80f);
        Assert.AreEqual(TransformExtensions.ClampAngle(-50f, min, max), -50f);
        Assert.AreEqual(TransformExtensions.ClampAngle(-60f, min, max), -60f);
        Assert.AreEqual(TransformExtensions.ClampAngle(-80f, min, max), -60f);

        min = 0;
        Assert.AreEqual(TransformExtensions.ClampAngle(-80f, min, max), 0);
        Assert.AreEqual(TransformExtensions.ClampAngle(-180f, min, max), 0);
        // Assert.AreEqual(TransformExtensions.ClampAngle(-181f, min, max), 0);
    }
Exemple #27
0
    // Update is called once per frame
    void Update()
    {
        objectTransformPosition = objectTransform.position;
        unity2RosV3             = TransformExtensions.Unity2Ros(objectTransformPosition);
        unity2RosV3.Scale(unity2DobotScale);
        Matrix3x3 matrix           = new Matrix3x3(new float[] { 1f, 1f, 1f, 1f, 1f, 1f, 1f, 1f, 1f });
        Matrix3x3 transposedMatrix = matrix.Transpose();



        //targetScaled = new Vector3(objectTransformPosition.x * scaleX, objectTransformPosition.y * scaleY, objectTransformPosition.z * scaleZ);
        //target = targetScaled + targetOffset;
        //targetSwapped = new Vector3(target.z, target.x, target.y);
        //target.x = ( objectTransform.position.x - fixedValueModifier.x ) * numerators.x / denominators.x;
        //target.y = (objectTransform.position.y - fixedValueModifier.y) * numerators.y / denominators.y;
        //target.z = (objectTransform.position.z - fixedValueModifier.z) * numerators.z / denominators.z;
        transformedLocation = unity2RosV3;
        text.SetText(transformedLocation.ToString());
    }
Exemple #28
0
        internal static MatrixTransform GetAnimationTransform(FrameworkElement element)
        {
            Matrix    matrix1     = new Matrix();
            Transform thisObject1 = element.TransformToVisual((Visual)Window.GetWindow((DependencyObject)element)) as Transform;

            if (thisObject1 != null)
            {
                matrix1 = MatrixHelper.Multiply(matrix1, TransformExtensions.GetMatrix(thisObject1));
            }
            Transform thisObject2 = FrameworkElementExtensions.RenderTransformToAncestor(element, (DependencyObject)null).Inverse as Transform;

            if (thisObject2 != null)
            {
                matrix1 = MatrixHelper.Multiply(matrix1, TransformExtensions.GetMatrix(thisObject2));
            }
            return(new MatrixTransform()
            {
                Matrix = matrix1
            });
        }
        private static Transform TransformToAncestorHelper(FrameworkElement element, DependencyObject parent, DependencyProperty property)
        {
            Matrix matrix = Matrix.Identity;

            foreach (DependencyObject dependencyObject in VisualTreeExtensions.GetVisualAncestorsAndSelf((DependencyObject)element))
            {
                if (dependencyObject != parent)
                {
                    Transform thisObject = (Transform)dependencyObject.GetValue(property);
                    if (thisObject != null)
                    {
                        matrix = MatrixHelper.Multiply(matrix, TransformExtensions.GetMatrix(thisObject));
                    }
                }
                else
                {
                    break;
                }
            }
            return((Transform)TransformExtensions.MakeMatrixTransform(matrix));
        }
Exemple #30
0
    pose_msg CreatePoseMessageIIWA(Transform base_T, Transform goal_T)
    {
        pose_msg pose = new pose_msg();

        Vector3    pos = goal_T.position - base_T.position;
        Quaternion ori = Quaternion.Inverse(base_T.rotation) * goal_T.rotation;

        ori = TransformExtensions.Unity2Ros(ori);
        pos = TransformExtensions.Unity2Ros(pos);



        Point_msg point = new Point_msg
        {
            x = -pos.x,
            y = -pos.y,
            z = pos.z
        };

        float          d          = Mathf.Sqrt(ori.x * ori.x + ori.y * ori.y + ori.z * ori.z + ori.w * ori.w);
        Quaternion_msg quaternion = new Quaternion_msg
        {
            x = ori.x / d,
            y = ori.y / d,
            z = ori.z / d,
            w = ori.w / d
        };

        //DateTime.UtcNow.Millisecond;
        HeaderExtensions.Update(pose.header);

        pose.header.stamp.secs  = DateTime.UtcNow.Second;;
        pose.header.stamp.nsecs = DateTime.UtcNow.Millisecond;

        pose.header.frame_id  = "map";
        pose.pose.position    = point;
        pose.pose.orientation = quaternion;

        return(pose);
    }