public override void InitWithGeometry(Geometry geometry) { units = new VertexUnit[] { }; if (geometry is ResolvedBody) { resolvedBody = (ResolvedBody)geometry; } GeoVertex[] geoVertices = geometry.GeoVertices(); int[] ids = new int[geoVertices.Length]; for (int i = 0; i < geoVertices.Length; i++) { ids[i] = geoVertices[i].VertexUnit().id; } face = new FaceRefer(ids); elements = new GeoElement[] { }; dependencies.AddRange(units); GeoCircular[] geoCirculars = geometry.GeoCirculars(); if (geoCirculars.Length != 0) { GeoCircular geoCircular = geoCirculars[0]; circular = geoCircular.Circular(); } }
private bool AddShape() { if (geometry is ResolvedBody) { ResolvedBody resolvedBody = (ResolvedBody)geometry; if (resolvedBody.shapeSetted) { return(false); } switch (ShapePositions.Count) { case 3: resolvedBody.SetTriangle(ShapePositions.ToArray()); break; case 4: resolvedBody.SetRectangle(ShapePositions.ToArray()); break; default: return(false); } } geometryBehaviour.InitGeometry(geometry); return(true); }
public ResolvedBodyGeometryState(Tool tool, Geometry geometry) : base(tool, geometry) { if (geometry is ResolvedBody) { this.geometry = (ResolvedBody)geometry; } }
public override Auxiliary GenerateAuxiliary(Geometry geometry, FormInput formInput) { bool valid = ValidateInput(geometry, formInput); if (!valid) { return(null); } if (!(geometry is ResolvedBody)) { return(null); } ResolvedBody resolvedBody = (ResolvedBody)geometry; if (!resolvedBody.isSpinned || resolvedBody.isSpread) { return(null); } SpreadAuxiliary auxiliary = new SpreadAuxiliary(); auxiliary.InitWithGeometry(geometry); if (!auxiliary.CanSpread()) { return(null); } auxiliary.AddPlaneGraph(); return(auxiliary); }
public ResolvedBodyConstructor(Geometry geometry) : base(geometry) { if (geometry is ResolvedBody) { this.geometry = (ResolvedBody)geometry; } geometrySetted = false; }
public TriangleConditionState(Tool tool, Condition condition, Geometry geometry) : base(tool, condition) { if (condition is TriangleCondition) { this.condition = (TriangleCondition)condition; } if (geometry is ResolvedBody) { this.geometry = (ResolvedBody)geometry; } }
public override bool ValidateInput(Geometry geometry, FormInput formInput) { if (!(geometry is ResolvedBody)) { return(false); } ResolvedBody resolvedBody = (ResolvedBody)geometry; // FormNum height = (FormNum)formInput.inputs[2]; // FormNum width = (FormNum)formInput.inputs[6]; // if (!IsValidLength(height) || !IsValidLength(width)) // return false; return(true); }
public override Geometry GenerateGeometry() { ResolvedBody geo = new ResolvedBody(); geo.Constructor = new ResolvedBodyConstructor(geo); geo.Assistor = new Assistor(geo); geo.Implement = new Implement(geo); geo.Init(); // // transform camera // NavAxisBehaviour axis = GameObject.Find("X").GetComponent<NavAxisBehaviour>(); // PointerEventData data = new PointerEventData(EventSystem.current); // axis.OnPointerClick(data); lockButton = GameObject.Find("LockButton").GetComponent <StatusButton>(); lockButton.SetStatus(1); return(geo); }
public override Measure GenerateMeasure(Geometry geometry, FormInput formInput) { bool valid = ValidateInput(geometry, formInput); if (!valid) { return(null); } if (!(geometry is ResolvedBody)) { return(null); } else { ResolvedBody resolvedBody = (ResolvedBody)geometry; if (!resolvedBody.isSpinned) { return(null); } GeoCircular[] geoCirculars = geometry.GeoCirculars(); if (geoCirculars.Length != 0) { GeoCircular geoCircular = geoCirculars[0]; Circular circular = geoCircular.Circular(); if (!circular.IsNormalCircular()) { return(null); } } } GeoVertex[] geoVertices = geometry.GeoVertices(); int[] ids = new int[geoVertices.Length]; int index = 0; foreach (GeoVertex vertice in geoVertices) { ids[index++] = vertice.Id; } SurfaceAreaMeasure measure = new SurfaceAreaMeasure(ids); return(measure); }
public override void InitWithGeometry(Geometry geometry) { if (geometry is ResolvedBody) { resolvedBody = (ResolvedBody)geometry; } units = new VertexUnit[] { }; GeoVertex[] geoVertices = geometry.GeoVertices(); vertices = new VertexUnit[geoVertices.Length]; int[] ids = new int[geoVertices.Length]; for (int i = 0; i < geoVertices.Length; i++) { vertices[i] = geoVertices[i].VertexUnit(); ids[i] = vertices[i].id; } face = new FaceRefer(ids); elements = new GeoElement[] { }; dependencies.AddRange(units); }
public void OpenWritingPanel(Geometry geometry) { gameObject.SetActive(true); StatusButton lockButton = GameObject.Find("LockButton").GetComponent <StatusButton>(); lockButton.SetStatus(1); recognizePanel.showRecognizePanel(); penBehaviour.SetDrawing(false); penBehaviour.SetGeometry(geometry); if (geometry is ResolvedBody) { ResolvedBody resolvedBody = (ResolvedBody)geometry; if (!resolvedBody.shapeSetted) { NavAxisBehaviour axis = GameObject.Find("X").GetComponent <NavAxisBehaviour>(); PointerEventData data = new PointerEventData(EventSystem.current); axis.OnPointerClick(data); penBehaviour.SetDrawing(true); penBehaviour.SetGeometry(geometry); return; } } }