Ejemplo n.º 1
0
        // hitpos からrayがくる
        public void OnClicked(Mouse mouse, RayWrap ray)
        {
            if (!mouse.Clicked)
            {
                state.EndClick( );
                return;
            }
            //Util.DebugWrite( $"DraggingState {state.IsDragging}" );
            if (state.IsDragging)
            {
                //Util.DebugWrite( $"Dragging {state.Axis}" );
                Dragging(ray);
                return;
            }

            foreach (Face item in Faces)
            {
                HitResult res = ray.IntersectFace(item);
                if (res.IsHit)
                {
                    // red redHead
                    // redRot
                    if (res.Info == "red" || res.Info == "redHead")
                    {
                        state.Update(res, ClickedAxis.X);
                        break;
                    }
                    if (res.Info == "redRot")
                    {
                        state.Update(res, ClickedAxis.XRot);
                        break;
                    }

                    if (res.Info == "green" || res.Info == "greenHead")
                    {
                        state.Update(res, ClickedAxis.Y);
                        break;
                    }
                    if (res.Info == "greenRot")
                    {
                        state.Update(res, ClickedAxis.YRot);
                        break;
                    }

                    if (res.Info == "blue" || res.Info == "blueHead")
                    {
                        state.Update(res, ClickedAxis.Z);
                        break;
                    }
                    if (res.Info == "blueRot")
                    {
                        state.Update(res, ClickedAxis.ZRot);
                        break;
                    }

                    //Util.DebugWrite( $"start {res.Info}" );
                }
            }
        }
Ejemplo n.º 2
0
 public IEnumerable <HitResult> HitPos(RayWrap ray)
 {
     foreach (Face item in Faces)
     {
         HitResult res = ray.IntersectFace(item);
         if (res.IsHit)
         {
             yield return(res);
         }
     }
 }