public bool SetFragment(HomographyFragment hf) { List <PointSaveFormat> psfList = new List <PointSaveFormat> (); foreach (FragmentVertex fv in hf.FragmentVertices) { PointSaveFormat psf = new PointSaveFormat(); if (!psf.SetPoint(fv)) { return(false); } psfList.Add(psf); } foreach (FragmentAnchor fa in hf.FragmentAnchores) { PointSaveFormat psf = new PointSaveFormat(); if (!psf.SetPoint(fa)) { return(false); } psfList.Add(psf); } PointsData = psfList.ToArray(); return(true); }
public bool GetFragment(ref HomographyFragment hf) { PointSaveFormat[] psfList = PointsData; List <FragmentPoint> fpList = new List <FragmentPoint> (); foreach (PointSaveFormat psf in psfList) { FragmentPoint fp; if (!psf.GetPoint(out fp)) { return(false); } fpList.Add(fp); } foreach (FragmentPoint fp in fpList) { if (fp is FragmentVertex) { hf.FragmentVertices.Add(fp as FragmentVertex); } if (fp is FragmentAnchor) { hf.FragmentAnchores.Add(fp as FragmentAnchor); } } return(true); }
public bool CreateFragmentListFromSaveData(HomographyEditor editor) { FragmentSaveFormat[] fsfList = FragmentsData; foreach (FragmentSaveFormat fsf in fsfList) { HomographyFragment hf = editor.CreateFragment().GetComponent <HomographyFragment> (); if (!fsf.GetFragment(ref hf)) { return(false); } } editor.ScaleHomography = ScaleHomography; return(true); }
public override void Update() { HomographyFragment hf = mHomographyEditor.CreateFragment().GetComponent <HomographyFragment> (); Vector3 mousePos = Input.mousePosition; Vector2 stdPos = mHomographyEditor.ConvertPosToUv(new Vector2(mousePos.x, mousePos.y)); FragmentVertex fv = new FragmentVertex(stdPos); hf.FragmentVertices.Add(fv); List <FragmentPoint> selectedList = mHomographyEditor.SelectedPointList; selectedList.RemoveRange(0, selectedList.Count); selectedList.Add(fv); mHomographyEditor.ManipulationMode = mHomographyEditor.EditTarget | HomographyEditor.ManipulationKind.Add; Controller.ReplaceManipulation(new MoveVertex()); }
//フラグメントの頂点を用意 private bool FindFragmentVertex(FragmentVertex vertex, out HomographyFragment fragment, out int index) { fragment = null; index = -1; foreach (HomographyFragment hf in mHomographyEditor.FragmentList) { for (int i = 0; i < hf.FragmentVertices.Count; i++) { if (hf.FragmentVertices [i] == vertex) { fragment = hf; index = i; return(true); } } } return(false); }