Exemplo n.º 1
0
        private HitTestResultBehavior HTResult(HitTestResult rawresult)
        {
            RayHitTestResult rayResult = rawresult as RayHitTestResult;

            if (rayResult != null)
            {
                DiffuseMaterial darkSide = new DiffuseMaterial(new SolidColorBrush(Colors.Purple));
                bool            gasit    = false;
                foreach (var obj in instantiatedObject)
                {
                    if (obj.Model != rayResult.ModelHit)
                    {
                        continue;
                    }
                    if (obj.IsSelected)
                    {
                        continue;
                    }
                    gasit           = true;
                    tooltip.Content = ToolTipHelper.Serialize(new List <PowerEntity>()
                    {
                        obj.Entity
                    });
                    tooltip.IsOpen = true;
                    hitGeometry    = (GeometryModel3D)rayResult.ModelHit;
                    ScheduleColorReset(obj);
                    hitGeometry.Material = darkSide;
                }
                foreach (var obj in lines.Values)
                {
                    if (obj.Model != rayResult.ModelHit)
                    {
                        continue;
                    }
                    if (obj.IsSelected || obj.FirstEnd.IsSelected || obj.SecondEnd.IsSelected)
                    {
                        continue;
                    }
                    gasit          = true;
                    tooltip.IsOpen = true;

                    tooltip.Content = $"Type: Line Entity\nId: {obj.Entity.Id}\nName: {obj.Entity.Name}\nIsUnderground: {obj.Entity.IsUnderground}";
                    hitGeometry     = (GeometryModel3D)rayResult.ModelHit;
                    ScheduleColorReset(obj);
                    ScheduleColorReset(obj.FirstEnd);
                    ScheduleColorReset(obj.SecondEnd);
                    hitGeometry.Material         = darkSide;
                    obj.FirstEnd.Model.Material  = darkSide;
                    obj.SecondEnd.Model.Material = darkSide;
                }
                if (!gasit)
                {
                    hitGeometry = null;
                }
            }

            return(HitTestResultBehavior.Stop);
        }
Exemplo n.º 2
0
 void OnHoverOverNode(object sender, RoutedEventArgs e)
 {
     Shape.ToolTip = ToolTipHelper.Serialize(Entities);
 }