Esempio n. 1
0
        //CTOR
        public InkInputControl()
        {
            //Initialize XAML
            this.InitializeComponent();

            //Create a new InkDrawingAttributes instance
            m_inkAttr = new InkDrawingAttributes();
            //Set firt to curve to true to get nice Bezier curves
            m_inkAttr.FitToCurve = true;
            //We ignore the presuer as our custom ink renderer does not know how to render it.
            m_inkAttr.IgnorePressure = true;
            //Set the default ink rendering size to 1.0
            m_inkAttr.Size = new Size(1.0, 1.0);
            //Set the defualt ink pen tip to circle
            m_inkAttr.PenTip = PenTipShape.Circle;
            //Set the default ink color to black
            m_inkAttr.Color = Windows.UI.Colors.Black;

            //Create a new Ink Manager instance
            m_inkMan = new InkManager();
            //Set the default ink rendering attributes
            m_inkMan.SetDefaultDrawingAttributes(m_inkAttr);

            //Create a new Ink Renderer instance using the control's inkCanvas object as the target
            m_renderer = new InkRenderer(this.inkCanvas);
            m_renderer.UseActiveInkColor = false;

            //Create an empty list for CanvaImage objects
            m_canvasImages = new List <CanvasImage>();
        }
Esempio n. 2
0
        private async void SetImage(byte[] ImageData)
        {
            MedicalCanvas.Children.Clear();
            if (ImageData == null)
            {
                MedcialInkManager = new InkManager();
                return;
            }
            InkManager inkMgr = MedcialInkManager;

            renderer = new XamlInkRenderer(MedicalCanvas);

            using (var stream = new InMemoryRandomAccessStream())
            {
                await stream.WriteAsync(ImageData.AsBuffer());

                await stream.FlushAsync();

                stream.Seek(0);

                await inkMgr.LoadAsync(stream);

                var iskList  = inkMgr.GetStrokes();
                int iskCount = iskList.Count;
                renderer.Clear();
                renderer.AddInk(iskList);
            }
        }
Esempio n. 3
0
    void Awake()
    {
        if (enabled)
        {
            if (mInstance == null || mInstance == this)
            {
                mInstance = this;
            }
            else
            {
                Debug.LogWarning("Another Ink Manager already exists (" + mInstance.gameObject + "), destroying " + gameObject, mInstance);
                DestroyImmediate(gameObject);
                return;
            }

            //Ensure that this object persists across scene loads
            DontDestroyOnLoad(this.gameObject);
        }
        else
        {
            Debug.LogWarning("This Ink Manager is disabled (" + gameObject + "), destroying.");
            DestroyImmediate(gameObject);
        }
        Initialize();
    }
Esempio n. 4
0
 /// <summary>
 /// Clears the selection of any stroke.
 /// </summary>
 /// <param name="inkManager">
 /// The <see cref="InkManager"/>.
 /// </param>
 public static void ClearStrokeSelection(this InkManager inkManager)
 {
     foreach (var stroke in inkManager.GetStrokes())
     {
         stroke.Selected = false;
     }
 }
Esempio n. 5
0
 /// <summary>
 /// Selects all of the strokes.
 /// </summary>
 /// <param name="inkManager">
 /// The <see cref="InkManager"/>.
 /// </param>
 public static void SelectAllStrokes(this InkManager inkManager)
 {
     foreach (var stroke in inkManager.GetStrokes())
     {
         stroke.Selected = true;
     }
 }
Esempio n. 6
0
 void OnDestroy()
 {
     if (mInstance == this)
     {
         mInstance = null;
     }
 }
Esempio n. 7
0
 /// <summary>
 /// Adds a collection of strokes to the specified <see cref="InkManager"/>.
 /// </summary>
 /// <param name="inkManager">
 /// The <see cref="InkManager"/>.
 /// </param>
 /// <param name="strokes">
 /// The strokes to add.
 /// </param>
 public static void AddStrokes(this InkManager inkManager, IEnumerable <InkStroke> strokes)
 {
     foreach (var stroke in strokes)
     {
         inkManager.AddStroke(stroke);
     }
 }
Esempio n. 8
0
        protected override void OnPointerReleased(PointerRoutedEventArgs args)
        {
            // Get information
            PointerPoint pointerPoint = args.GetCurrentPoint(sheetPanel);
            uint         id           = pointerPoint.PointerId;
            InkManager   inkManager   = this.InkFileManager.InkManager;

            if (pointerDictionary.ContainsKey(id))
            {
                // Give PointerPoint to InkManager
                inkManager.ProcessPointerUp(pointerPoint);

                if (inkManager.Mode == InkManipulationMode.Inking)
                {
                    // Get rid of the little line segments
                    newLineGrid.Children.Clear();

                    // Render the new stroke
                    IReadOnlyList <InkStroke> inkStrokes = inkManager.GetStrokes();
                    InkStroke inkStroke = inkStrokes[inkStrokes.Count - 1];
                    this.InkFileManager.RenderStroke(inkStroke);
                }
                else if (inkManager.Mode == InkManipulationMode.Selecting)
                {
                    // Get rid of the enclosure line
                    newLineGrid.Children.Clear();

                    // Render everything so selected items are identified
                    this.InkFileManager.RenderAll();
                }
                pointerDictionary.Remove(id);
            }
            base.OnPointerReleased(args);
        }
Esempio n. 9
0
        private void OnValidate()
        {
            ink = ink ?? GetComponent <InkManager>();
            var watcher = ink.GetOrAddInkVariableWatcher(inkListName, HandleTypeEnum.List);

            watcher.changedAsList.AddListener(OnInventoryChanged);
        }
    public void Awake()
    {
        //establish the singleton
        instance = this;

        //Find all the UI components
        uiCanvas = GameObject.Find("Canvas").GetComponent <Canvas>();
        //dialogueBox = Instantiate<Image>(textboxPrefab, uiCanvas.transform);
        dialogueText      = dialogueBox.transform.GetChild(0).GetComponent <TextMeshProUGUI>();
        characterNameText = dialogueBox.transform.GetChild(1).GetComponent <TextMeshProUGUI>();

        continuebutton = dialogueBox.transform.GetChild(2).GetComponent <Button>();
        exitbutton     = dialogueBox.transform.Find("ExitIcon").GetComponent <Button>();
        choicebutton1  = GameObject.FindWithTag("ChoiceButton1").GetComponent <Button>();
        choicebutton2  = GameObject.FindWithTag("ChoiceButton2").GetComponent <Button>();
        choicebutton3  = GameObject.FindWithTag("ChoiceButton3").GetComponent <Button>();

        //add button click functionality to newly instantiated prefab
        exitbutton.onClick.AddListener(() => ExitTextBox());
        choicebutton1.onClick.AddListener(() => ChoiceButtonPressed(0));
        choicebutton2.onClick.AddListener(() => ChoiceButtonPressed(1));
        choicebutton3.onClick.AddListener(() => ChoiceButtonPressed(2));
        continuebutton.onClick.AddListener(() => ContinueButtonPressed());

        //deactivate the UI so it doesn't get in the way
        blackBackground.gameObject.SetActive(false);
        dialogueBox.gameObject.SetActive(false);
        //
        //

        TextAsset storyFile = Resources.Load <TextAsset>("master_dialogue_file");

        Debug.Log("Story file loaded");
        story = new Story(storyFile.text);
    }
Esempio n. 11
0
        /// <summary>
        /// Populates the page with content passed during navigation.  Any saved state is also
        /// provided when recreating a page from a prior session.
        /// </summary>
        /// <param name="navigationParameter">The parameter value passed to
        /// <see cref="Frame.Navigate(Type, Object)"/> when this page was initially requested.
        /// </param>
        /// <param name="pageState">A dictionary of state preserved by this page during an earlier
        /// session.  This will be null the first time a page is visited.</param>
        protected override void LoadState(Object navigationParameter, Dictionary <String, Object> pageState)
        {
            letterToWright.Text = "";
            l = navigationParameter as Lesson;
            letterToWright.Text = l.selectedLetter;

            if (l.selectedLetter.Equals("t"))
            {
                letterToWright.FontFamily = new FontFamily("Ariel black");
            }
            else
            {
                letterToWright.FontFamily = new FontFamily("Comic Sans MS");
            }

            _inkKhaled = new InkManager();
            thick      = 10.0;
            sbrush     = new SolidColorBrush(Colors.Black);
            ptsh       = new PenTipShape()
            {
            };
            myCanvas.PointerPressed  += new PointerEventHandler(MyCanvas_PointerPressed);
            myCanvas.PointerMoved    += new PointerEventHandler(MyCanvas_PointerMoved);
            myCanvas.PointerReleased += new PointerEventHandler(MyCanvas_PointerReleased);
            myCanvas.PointerExited   += new PointerEventHandler(MyCanvas_PointerReleased);
        }
Esempio n. 12
0
 void Start()
 {
     _inkManager = FindObjectOfType <InkManager>();
     if (_inkManager == null)
     {
         Debug.LogError("Ink Manager was not found!");
     }
 }
Esempio n. 13
0
 public InkView()
 {
     this.InitializeComponent();
     inkStream  = new MemoryStream();
     inkManager = new InkManager();
     Ink.InkPresenter.IsInputEnabled   = true;
     Ink.InkPresenter.InputDeviceTypes = CoreInputDeviceTypes.Mouse | CoreInputDeviceTypes.Pen | CoreInputDeviceTypes.Touch;
 }
Esempio n. 14
0
        private void Clear_Clicked(object sender, RoutedEventArgs e)
        {
            inkManager = new InkManager();

            needToRedrawInkSurface = true;

            canvasControl.Invalidate();
        }
Esempio n. 15
0
        private void DefaultConditions()        //This Is The Method Called On The Startup Of The PaintApp
        {

            inkManager = new InkManager();      //Initializes The Inkmanager
            strokeThickness = 5;            //Initialize The Drawing Pen's Thickness To 5
            shapeKind = ShapeTyp.LINE;     //Initialize The Drawing Shape To Line
            pen = new SolidColorBrush(Colors.Black);        //Initialize The Drawing Pen With Black Color
            hideLayers();
        }
Esempio n. 16
0
        private void Clear_Clicked(object sender, RoutedEventArgs e)
        {
            strokeList.Clear();
            inkManager = new InkManager();

            needsClear = true;

            canvasControl.Invalidate();
        }
Esempio n. 17
0
        protected override void OnPointerMoved(PointerRoutedEventArgs args)
        {
            // Get information
            PointerPoint         pointerPoint         = args.GetCurrentPoint(sheetPanel);
            uint                 id                   = pointerPoint.PointerId;
            InkManager           inkManager           = this.InkFileManager.InkManager;
            InkDrawingAttributes inkDrawingAttributes =
                this.InkFileManager.InkDrawingAttributes;

            if (pointerDictionary.ContainsKey(id))
            {
                foreach (PointerPoint point in args.GetIntermediatePoints(sheetPanel).Reverse())
                {
                    Point point1 = pointerDictionary[id];
                    Point point2 = pointerPoint.Position;

                    // Give PointerPoint to InkManager
                    object obj = inkManager.ProcessPointerUpdate(point);

                    if (inkManager.Mode == InkManipulationMode.Erasing)
                    {
                        // See if something has actually been removed
                        Rect rect = (Rect)obj;

                        if (rect.Width != 0 && rect.Height != 0)
                        {
                            this.InkFileManager.RenderAll();
                        }
                    }
                    else if (inkManager.Mode == InkManipulationMode.Selecting)
                    {
                        Polyline polyline = newLineGrid.Children[0] as Polyline;
                        polyline.Points.Add(point2);
                    }
                    else // inkManager.Mode == InkManipulationMode.Inking
                    {
                        // Render the line
                        Line line = new Line
                        {
                            X1              = point1.X,
                            Y1              = point1.Y,
                            X2              = point2.X,
                            Y2              = point2.Y,
                            Stroke          = new SolidColorBrush(inkDrawingAttributes.Color),
                            StrokeThickness = inkDrawingAttributes.Size.Width *
                                              pointerPoint.Properties.Pressure,
                            StrokeStartLineCap = PenLineCap.Round,
                            StrokeEndLineCap   = PenLineCap.Round
                        };
                        newLineGrid.Children.Add(line);
                    }
                    pointerDictionary[id] = point2;
                }
            }
            base.OnPointerMoved(args);
        }
Esempio n. 18
0
    private void WaitForLevelEndChargingToStartDialog(Scene scene, LoadSceneMode mode)
    {
        if (scene.name != AppScenes.MAP_SCENE && scene.name != AppScenes.LOAD_SCENE)
        {
            inkManRef    = FindObjectOfType <InkManager>();
            dialogManRef = FindObjectOfType <DialogManager>();

            StartDialog(true);
        }
    }
Esempio n. 19
0
        public ImageMarkupPage()
        {
            this.InitializeComponent();


            this._inkManager = new InkManager();

            //#FF003f82
            this._brushColor = Colors.Blue;
            this.Loaded     += DrawImageView_Loaded;
        }
Esempio n. 20
0
        private void InkPresenter_StrokesErased(InkPresenter sender, InkStrokesErasedEventArgs args)
        {
            var removed    = args.Strokes;
            var strokeList = inkManager.GetStrokes().Except(removed).ToList();

            inkManager = new InkManager();
            strokeList.ForEach(inkManager.AddStroke);

            ClearSelection();

            canvasControl.Invalidate();
        }
Esempio n. 21
0
    /* Works as follows...
     * We iterate through the entire loop of characters, and for each character,
     * we are going to create an instance of it, set it to inactive, name it properly,
     * and then add it to our list of all actors called actorsList.
     */
    void Awake()
    {
        _inkManager = GetComponent <InkManager>();

        for (int i = 0; i < characters.Length; i++)
        {
            GameObject newActor = Instantiate(characters[i]);
            newActor.SetActive(false);
            newActor.name = characters[i].name;
            actorsList.Add(newActor);
        }
        characterTags = GetComponent <CharacterTags>();
    }
Esempio n. 22
0
        private async void LoadStrokesFromStream(Stream stream)
        {
            if (stream.Length > 0)
            {
                await inkManager.LoadAsync(stream.AsInputStream());
            }
            else
            {
                inkManager = new InkManager();
            }

            needToRedrawInkSurface = true;
        }
Esempio n. 23
0
    private void Awake()
    {
        if (!instance)
        {
            instance = this;
        }
        else
        {
            Destroy(gameObject);
        }
        dialogTyper = dialogBox.GetComponent <TextTyper>();

        StartStory();
    }
Esempio n. 24
0
        void Canvas_PointerPressed(object sender, PointerRoutedEventArgs e)
        {
            if (DrawingTool != "Eraser")
            {
                Window.Current.CoreWindow.PointerCursor = new CoreCursor(CoreCursorType.Cross, 1);
            }
            else
            {
                Window.Current.CoreWindow.PointerCursor = new CoreCursor(CoreCursorType.UniversalNo, 1);
            }
            Canvas     canvas     = sender as Canvas;
            InkManager inkManager = MedcialInkManager;

            switch (DrawingTool)
            {
            case "Pencil":
            {
                var MyDrawingAttributes = new InkDrawingAttributes();
                MyDrawingAttributes.Size       = new Size(StrokeThickness, StrokeThickness);
                MyDrawingAttributes.Color      = BorderColor;
                MyDrawingAttributes.FitToCurve = true;
                inkManager.SetDefaultDrawingAttributes(MyDrawingAttributes);

                PreviousContactPoint = e.GetCurrentPoint(canvas).Position;
                if (e.GetCurrentPoint(canvas).Properties.IsLeftButtonPressed)
                {
                    // Pass the pointer information to the InkManager.
                    inkManager.ProcessPointerDown(e.GetCurrentPoint(canvas));
                    PenID     = e.GetCurrentPoint(canvas).PointerId;
                    e.Handled = true;
                }
            }
            break;

            case "Eraser":
            {
                Window.Current.CoreWindow.PointerCursor = new CoreCursor(CoreCursorType.UniversalNo, 1);
                StartPoint             = e.GetCurrentPoint(canvas).Position;
                Pencil                 = new Polyline();
                Pencil.Stroke          = new SolidColorBrush(Colors.White);
                Pencil.StrokeThickness = 10;
                canvas.Children.Add(Pencil);
            }
            break;

            default:
                break;
            }
        }
Esempio n. 25
0
        void Canvas_PointerReleased(object sender, PointerRoutedEventArgs e)
        {
            Canvas     canvas     = sender as Canvas;
            InkManager inkManager = MedcialInkManager;

            if (e.Pointer.PointerId == PenID || e.Pointer.PointerId == TouchID)
            {
                inkManager.ProcessPointerUp(e.GetCurrentPoint(canvas));
            }

            TouchID   = 0;
            PenID     = 0;
            e.Handled = true;
            //Pencil = null;
        }
Esempio n. 26
0
        protected override void OnPointerPressed(PointerRoutedEventArgs args)
        {
            if (args.Pointer.PointerDeviceType == PointerDeviceType.Pen)
            {
                // Get information
                PointerPoint pointerPoint = args.GetCurrentPoint(sheetPanel);
                uint         id           = pointerPoint.PointerId;
                InkManager   inkManager   = this.InkFileManager.InkManager;

                // Initialize for inking, erasing, or selecting
                if (pointerPoint.Properties.IsEraser)
                {
                    inkManager.Mode = InkManipulationMode.Erasing;
                    this.InkFileManager.UnselectAll();
                }
                else if (pointerPoint.Properties.IsBarrelButtonPressed)
                {
                    inkManager.Mode = InkManipulationMode.Selecting;

                    // Create Polyline for showing enclosure
                    Polyline polyline = new Polyline
                    {
                        Stroke          = selectionBrush,
                        StrokeThickness = 1
                    };
                    polyline.Points.Add(pointerPoint.Position);
                    newLineGrid.Children.Add(polyline);
                }
                else
                {
                    inkManager.Mode = InkManipulationMode.Inking;
                    this.InkFileManager.UnselectAll();
                }

                // Give PointerPoint to InkManager
                inkManager.ProcessPointerDown(pointerPoint);

                // Add an entry to the dictionary
                pointerDictionary.Add(args.Pointer.PointerId, pointerPoint.Position);

                // Capture the pointer
                this.CapturePointer(args.Pointer);
            }
            base.OnPointerPressed(args);
        }
Esempio n. 27
0
        public InkPresenter()
        {
            inkManager = new InkManager();

            // for the visual
            tempPathShape = new Path();
            Children.Add(tempPathShape);

            // touch events
            PointerPressed  += OnCanvasPointerPressed;
            PointerMoved    += OnCanvasPointerMoved;
            PointerReleased += OnCanvasPointerReleased;

            // defaults
            Background  = new SolidColorBrush(Colors.Transparent);
            StrokeColor = ImageConstructionSettings.Black;
            StrokeWidth = 2f;
        }
Esempio n. 28
0
    public override void OnInspectorGUI()
    {
        DrawDefaultInspector();

        InkManager I = (InkManager)target;

        if (GUILayout.Button("Debug Advance Group Chat"))
        {
            I.AdvanceStory("Group");
        }

        /*
         * Rect lastRect = GUILayoutUtility.GetLastRect();
         * var space = GUILayoutUtility.GetRect(GUIContent.none, GUIStyle.none, GUILayout.Height(EditorGUIUtility.singleLineHeight));
         * //Rect singleFieldRect = new Rect(lastRect.position.x, lastRect.position.y + lastRect.height + 5, lastRect.width, EditorGUIUtility.singleLineHeight );
         * EditorGUI.DrawRect(space, Color.green);
         */
    }
Esempio n. 29
0
    private void InitDefaults()
    {
        GetPreviousFlashbacks();

        //VAR//

        audioSource         = GetComponent <AudioSource>();
        inkManager          = GetComponent <InkManager>();
        button.interactable = false;
        coinLayer.SetActive(true);

        //UI//

        blackCanvasGroup.gameObject.SetActive(true);
        blackCanvasGroup.alpha = 1;

        LeanTween.alphaCanvas(blackCanvasGroup, 0, 1f);

        StartCoroutine(FadeIn(audioSource, 0.8f, heartbeat));
    }
Esempio n. 30
0
        private void InkPresenter_StrokesErased(InkPresenter sender, InkStrokesErasedEventArgs args)
        {
            var removed = args.Strokes;

            foreach (var s in removed)
            {
                strokeList.Remove(s);
            }

            inkManager = new InkManager();

            foreach (var s in strokeList)
            {
                inkManager.AddStroke(s);
            }

            ClearSelection();

            canvasControl.Invalidate();
        }