public void SetJunctionType(int index, JunctionType junction) { Point2 selectedPoint = _points[index]; if (selectedPoint.GetJunction () != junction) { if (junction == JunctionType.Curved) { ArchedPoint2 ap = new ArchedPoint2 (selectedPoint); _points[index] = ap; } else if (junction == JunctionType.Broken) { Point2 newPoint = new Point2 (selectedPoint); newPoint.SetPrevEdge (selectedPoint.GetPrevEdge ()); newPoint.SetNextEdge (selectedPoint.GetNextEdge ()); Edge2 prevEdge = newPoint.GetPrevEdge (); if (prevEdge != null) { prevEdge.SetNextPoint2 (newPoint); } Edge2 nextEdge = newPoint.GetNextEdge (); if (nextEdge != null) { nextEdge.SetPrevPoint2 (newPoint); } _points[index] = newPoint; } } }
public Polygon(PolygonRawData polygonRawData) { _closed = true; float area = 0; for (int i = 0; i < polygonRawData.Count; ++i) { Vector2 p1 = polygonRawData[i]; Vector2 p2 = polygonRawData[i + 1]; area += p1.x * p2.y - p2.x * p1.y; } if (area > 0) { polygonRawData.Reverse (); } //Debug.Log ("AREA " + area); Edge2 prevEdge = null; Point2 prevPt = null; Point2 currentPt = null; for (int i = 0; i < polygonRawData.Count - 1; ++i) { Vector2 rawPt = polygonRawData[i]; if (currentPt == null) { //currentPt = new Point2 (rawPt); currentPt = new Point2 (); currentPt.Set( rawPt.x, rawPt.y); } Point2 nextPt = new Point2 (polygonRawData[i + 1]); if (i == polygonRawData.Count - 2 && polygonRawData.Count > 2) { nextPt = _points[0].GetPrevEdge ().GetPrevPoint2 (); //nextPt = (Point2)_points[0].GetPrevEdge ().GetPrevPoint2 ().Clone(); //nextPt = new Point2(); nextPt.Set( _points[0].GetPrevEdge ().GetPrevPoint2 ().GetX(), _points[0].GetPrevEdge ().GetPrevPoint2 ().GetY()); } if (prevEdge == null) { if (prevPt == null) { //prevPt = new Point2 (polygonRawData[i - 1]); prevPt = new Point2 (); prevPt.Set( polygonRawData[i - 1].x, polygonRawData[i - 1].y); } prevEdge = new Edge2 (prevPt, currentPt); prevPt.SetNextEdge (prevEdge); } Edge2 nextEdge = new Edge2 (currentPt, nextPt); // if (i == polygonRawData.Count - 1) // { // nextEdge = _points[0].GetPrevEdge (); // } currentPt.SetEdges (prevEdge, nextEdge); _points.Add (currentPt); _edges.Add (nextEdge); if (i == polygonRawData.Count - 2 && polygonRawData.Count >= 2) { nextPt.SetPrevEdge (nextEdge); _edges.Add (nextPt.GetNextEdge ()); _points.Add (nextPt); } prevEdge = nextEdge; prevPt = currentPt; currentPt = nextPt; } if (_edges.Count == 2 && _points.Count == 2) { _points[0].SetPrevEdge (null); _points[1].SetNextEdge (null); _edges.RemoveAt (1); } UpdateBounds (); }
// Use this for initialization void Start() { _iosShadows = GameObject.Find("iosShadows"); if(_backgroundImg == null) Debug.LogError(DEBUGTAG+"Background Image"+PC.MISSING_REF); GameObject cameraGameObject = GameObject.Find ("PlanCamera"); _planCamera = cameraGameObject.GetComponent<Camera>(); _mainCamera = GameObject.Find ("mainCam"); _renderCamera = Camera.main; _polyDrawer = cameraGameObject.GetComponent <PolygonDrawer> (); _snapper = cameraGameObject.GetComponent <Snapper> (); _planTransformation = cameraGameObject.GetComponent <PlanTransformation> (); _planCamera.GetComponent<Camera>().enabled = false; _polyDrawer.enabled = false; _planTransformation.enabled = false; enabled = false; Point2 prevBgPoint = new Point2 (UnityEngine.Screen.width / 2 - 50, UnityEngine.Screen.height / 2); Point2 nextBgPoint = new Point2 (UnityEngine.Screen.width / 2 + 50, UnityEngine.Screen.height / 2); _backgroundEdge = new Edge2 (prevBgPoint, nextBgPoint); prevBgPoint.SetNextEdge (_backgroundEdge); nextBgPoint.SetPrevEdge (_backgroundEdge); }
public void AddPoint(Point2 point) { if (_points.Count > 0) { Point2 lastPoint = _points[_points.Count - 1]; Edge2 edge = new Edge2 (lastPoint, point); _edges.Add (edge); lastPoint.SetNextEdge (edge); point.SetPrevEdge (edge); } _points.Add (point); point.Update (); UpdateBounds (); }
// Use this for initialization void Start() { //NEW UI ---------------------------------------------- m_headerRect = new Rect(0,0,Screen.width,m_btnH); m_drawRect = new Rect(0,-m_drawMenus.Length* m_btnH,m_btnWL,m_drawMenus.Length* m_btnH); m_tmpDrawRect = new Rect(0,m_btnH,m_btnWL,m_btnH); // m_planRect = new Rect(m_btnW,-m_planMenus.Length* m_btnH,m_btnWL,m_planMenus.Length* m_btnH); m_planRect = new Rect(m_btnW,-m_planMenus.Length* m_btnH,m_btnWL,m_btnH); m_tmpPlanRect = new Rect(0,m_btnH,m_btnWL,m_btnH); m_paramRect = new Rect(2*m_btnW,-m_paramMenus.Length* m_btnH,m_btnWL*1.25f,m_paramMenus.Length* m_btnH); m_tmpParamRect = new Rect(0,m_btnH,m_btnWL*1.25f,m_btnH); m_mainView = new Rect(0,m_btnH,Screen.width,Screen.height-(2*m_btnH)); m_askRect = new Rect(Screen.width/3f,Screen.height/4f,Screen.width/3f,Screen.height/4f); //NEW UI ---------------------------------------------- if(_backgroundImg == null) Debug.LogError(DEBUGTAG+"Background Image"+PC.MISSING_REF); GameObject cameraGameObject = GameObject.Find ("PlanCamera"); _planCamera = cameraGameObject.GetComponent<Camera>(); _mainCamera = GameObject.Find ("mainCam"); _renderCamera = Camera.main; _polyDrawer = cameraGameObject.GetComponent <PolygonDrawer> (); _snapper = cameraGameObject.GetComponent <Snapper> (); _planTransformation = cameraGameObject.GetComponent <PlanTransformation> (); _planCamera.GetComponent<Camera>().enabled = false; _polyDrawer.enabled = false; _planTransformation.enabled = false; enabled = false; Point2 prevBgPoint = new Point2 (UnityEngine.Screen.width / 2 - 50, UnityEngine.Screen.height / 2); Point2 nextBgPoint = new Point2 (UnityEngine.Screen.width / 2 + 50, UnityEngine.Screen.height / 2); _backgroundEdge = new Edge2 (prevBgPoint, nextBgPoint); prevBgPoint.SetNextEdge (_backgroundEdge); nextBgPoint.SetPrevEdge (_backgroundEdge); }