//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Use: Projects input point onto input plane and returns projected point // //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public static Point ProjectOnPlane(Point point, Plane plane) { try { MeasureTools measureTools = InvApplication.MeasureTools; double minDist; object contextObj = null; minDist = measureTools.GetMinimumDistance((object)point, plane, InferredTypeEnum.kNoInference, InferredTypeEnum.kNoInference, ref contextObj); NameValueMap context = contextObj as NameValueMap; Point projectedPoint = context.get_Item(context.Count < 3 ? 2 : 3) as Point; return(projectedPoint); } catch { return(null); } }
public Size(Unit _value) { Unit reportUnit; if (_value.Value < 0) { throw new ApplicationException("Value of ReportExporters.Common.Model.Size cannot be negative."); } switch (_value.Type) { case UnitType.Mm: case UnitType.Inch: case UnitType.Cm: case UnitType.Point: case UnitType.Pica: reportUnit = _value; break; default: reportUnit = new Unit(MeasureTools.UnitToMillimeters(_value), UnitType.Mm); break; } this.Value = reportUnit; }
public override Object Activate(Network net, int time, Object value = null) { List <Node> inputs = net.getInputNodes(this.Id); if (!inputs.All(n => n.IsActivate(time))) { return(null); } Node input1 = inputs[0]; Vector fv1 = input1.Value; Vector fv2 = input1.GetValue(time - 1); if (fv1 == null || fv2 == null) { return(null); } MeasureTools tool = this.GetMeasureTools(); double v = tool.difference(fv1[0], fv2[0]); base.Activate(net, time, v); return(v); }
public override void OnButtonDownEvent(InputEvent evt) { TopoShape shape = GetSelectedShape((int)evt.GetMousePosition().X, (int)evt.GetMousePosition().Y); if(shape == null) return; Renderer renderer = GetRenderer(); m_Step += 1; if (m_Step == (int)EditStep.ES_Finish) { m_Step = (int)EditStep.ES_Init; MeasureTools mt = new MeasureTools(); MeasureResult rt = mt.ComputeMinDistance(m_Shape1, shape); LineNode lineNode = new LineNode(); lineNode.SetShowText(true); lineNode.Set(rt.GetPointOnShape1(), rt.GetPointOnShape2()); renderer.GetSceneManager().AddNode(lineNode); renderer.RequestDraw(1); return; } if (evt.IsLButtonDown()) { m_Shape1 = shape; } }
/// <summary> /// set cursor shape according to different measure tool /// </summary> /// <param name="measureTool"></param> public void SetMeasureTool(MeasureTools measureTool) { if (measureTool == MeasureTools.Line) { CommandLine(); } else if (measureTool == MeasureTools.Rectangular) { CommandRectangle(); } else if (measureTool == MeasureTools.Elliptical) { CommandEllipse(); } else if (measureTool == MeasureTools.Polygon) { CommandPolyLine(); } else if (measureTool == MeasureTools.Circle) { CommandCircle(); } else { CommandPointer(); } }
public override String GetValueText(Vector value = null) { if (value == null) { value = Value; } if (value == null) { return(""); } if (this.getGene().AbstractLevel == 0) { return(value[0].ToString("F4")); } List <String> names = this.getGene().AbstractLevelNames; if (names == null) { return(value.ToString()); } int sectionCount = this.getGene().SampleCount; int rankIndex = MeasureTools.GetMeasure(this.Cataory).getRankedIndex(value, this.getGene().AbstractLevel, sectionCount); return(value[0].ToString("F4") + "(" + names[rankIndex] + ")"); }
public MeasureTools GetMeasureTools() { if (_measureTools == null) { _measureTools = MeasureTools.GetMeasure(this.Cataory); } return(_measureTools); }
public Application CreateInventorConnection() { try { ThisApplication = (Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Inventor.Application"); MeasureTools = ThisApplication.MeasureTools; return(ThisApplication); } catch { return(null); } }
public MainForm() { log4net.Config.XmlConfigurator.Configure(); Form.CheckForIllegalCrossThreadCalls = false; Session.GetConfiguration(); MeasureTools.init(); resetEvolution(); InitializeComponent(); this.Width = Session.GetConfiguration().view.width; this.Height = Session.GetConfiguration().view.height; }
public double TotalLengthFlatPatternLoops(double totalCuttingLength = 0) { if (!HasFlatPattern()) { return(0); } MeasureTools measureTools = inventorConnection.GetMeasureTools(); foreach (EdgeLoop edgeLoop in flatPattern.EdgeLoops) { totalCuttingLength += measureTools.GetLoopLength(edgeLoop); } return(Math.Round(totalCuttingLength)); }
/// <summary> /// 切换期望姿态和目标姿态 /// 如果是正向的,让目标姿态为当前姿态向期望姿态靠近,期望姿态向最优姿态靠近 /// 如果是负向的,让目标姿态为当前姿态远离期望姿态,期望姿态取当前姿态 /// </summary> /// <param name="optimaGesture"></param> /// <param name="expectGesture"></param> /// <param name="curGesture"></param> /// <param name="direction"></param> /// <returns></returns> private (Vector objectiveGesture, Vector nextExpectGesture) switchObjectiveGesture(Vector optimaGesture, Vector expectGesture, Vector curGesture, int direction) { Vector objectiveGesture = new Vector(true, curGesture.Size), nextExpectGesture = new Vector(true, expectGesture.Size); double MOVEDISTANCE = 0.1; List <Receptor> gestureReceptors = net.GesturesReceptors; List <MeasureTools> measureTools = gestureReceptors.ConvertAll(g => MeasureTools.GetMeasure(g.getGene().Cataory)); for (int i = 0; i < optimaGesture.Size; i++) { double d1 = measureTools[i].distance(optimaGesture[i], expectGesture[i]); double d2 = measureTools[i].distance(optimaGesture[i], curGesture[i]); double d3 = measureTools[i].distance(expectGesture[i], curGesture[i]); if (direction > 0) { if (d1 < d2)//期望姿态比当前姿态距离最优姿态更近 { objectiveGesture[i] = measureTools[i].moveTo(curGesture[i], expectGesture[i], 1, Math.Min(d2, MOVEDISTANCE)); nextExpectGesture[i] = measureTools[i].moveTo(expectGesture[i], optimaGesture[i], 1, Math.Min(d1, MOVEDISTANCE)); } else//期望姿态比当前姿态距离最优姿态更远或者一样,说明反过来了 { objectiveGesture[i] = measureTools[i].moveTo(curGesture[i], expectGesture[i], 1, Math.Min(d3, MOVEDISTANCE)); nextExpectGesture[i] = measureTools[i].moveTo(expectGesture[i], optimaGesture[i], 1, Math.Min(d1, MOVEDISTANCE)); } } else if (direction < 0) { if (d1 < d2)//期望姿态比当前姿态距离最优姿态更近 { objectiveGesture[i] = measureTools[i].moveTo(curGesture[i], expectGesture[i], -1, Math.Min(d2, MOVEDISTANCE)); nextExpectGesture[i] = curGesture[i]; } else//期望姿态比当前姿态距离最优姿态更远或者一样,说明反过来了 { objectiveGesture[i] = measureTools[i].moveTo(curGesture[i], optimaGesture[i], 1, Math.Min(d2, MOVEDISTANCE)); nextExpectGesture[i] = curGesture[i]; } } else { objectiveGesture[i] = curGesture[i]; nextExpectGesture[i] = expectGesture[i]; } } return(objectiveGesture, nextExpectGesture); }
public double getRankedValue(double originValue) { if (this.getGene().AbstractLevel == 0) { return(originValue); } int sampleCount = getGene().SampleCount; if (sampleCount <= 0) { return(originValue); } return(MeasureTools.GetMeasure(this.Cataory).getRankedValue(originValue, this.getGene().AbstractLevel, sampleCount)); }
private void SetUpColumnsHeaders() { Header.TableRows.Clear(); RTableCell tCell; RTableRow headerRow = new RTableRow(); double sumColWidthInMillimeters = 0; foreach (ReportColumn reportColumn in ReportDataColumns) { if (reportColumn is ReportDataColumn) { ReportDataColumn reportDataColumn = reportColumn as ReportDataColumn; Unit _widthOfColumn = reportDataColumn.HeaderStyle.Width; if (_widthOfColumn.Value == 0) { _widthOfColumn = reportDataColumn.DefaultCellStyle.Width; } RTableColumn newColumn = new RTableColumn(); newColumn.Width = _widthOfColumn; this.TableColumns.Add(newColumn); sumColWidthInMillimeters += MeasureTools.UnitToMillimeters(_widthOfColumn); tCell = new RTableCell(); ReportControlItem rHeaderItem; int columnIndex = ReportDataColumns.IndexOf(reportDataColumn); int reportItemZIndex = columnIndex + 1; rHeaderItem = GetReportHeaderControlItem(reportDataColumn); ////////////////////// tCell.ReportItems.Add(rHeaderItem); headerRow.TableCells.Add(tCell); } else if (reportColumn is ReportHyperlinkColumn) { } } Item.Width = new Unit(sumColWidthInMillimeters, UnitType.Mm); Header.TableRows.Add(headerRow); }
private int getAbstractSectionCount(int abstraceLevel) { Configuration.Sensor s = Session.GetConfiguration().agent.receptors.GetSensor(this.name); if (s != null && s.Levels != null && abstraceLevel <= s.Levels.Count) { return(abstraceLevel == 0?s.Levels[abstraceLevel]: s.Levels[abstraceLevel - 1]); } MeasureTools mt = MeasureTools.GetMeasure(this.cataory); if (mt == null) { throw new Exception(this.Name + "无法完成分级:" + abstraceLevel.ToString() + ","); } if (mt.Levels != null && abstraceLevel <= mt.Levels.Count) { return(abstraceLevel == 0 ? mt.Levels[abstraceLevel] : mt.Levels[abstraceLevel - 1]); } throw new Exception(this.Name + "无法完成有效分级:" + abstraceLevel.ToString() + ","); }
/// <summary> /// 初始化地图及其图层/表格控制、鹰眼图、导航工具的组合控件 /// </summary> public MapViewer() { InitializeComponent(); MxdLaoder = new MapDocLoader(axMapControlMainMap, axPageLayoutControl); _measureTool = new MeasureTools(axMapControlMainMap); measureResultLabel.Text = ""; _layer2FieldsMenuItems = new Dictionary <string, ToolStripMenuItem[]>(); LayerRemoved = (obj, evt) => { if (_attributeForm != null && !_attributeForm.IsDisposed && _attributeForm.FeatLayer != null) { _attributeForm.Clear(); } }; MapActiveViewEvents = axMapControlMainMap.Map as IActiveViewEvents_Event; //向map/PageLayout中添加数据,包括图层、表格等都会触发ItemAdded事件 MapActiveViewEvents.ItemAdded += (item) => { if (item is ILayer layer) { LayerAdded?.Invoke(layer, new EventArgs()); GoToMapView(); GotoLayerToc(); } else if (item is ITable table) { this.tableListBox1.AddTable(table); GoToMapView(); GotoTableListBox(); } }; _toolBarMenu = new ToolbarMenuClass();//工具栏菜单类 _toolBarMenu.AddItem(new ControlsMapViewMenuClass(), 0, 0, false, esriCommandStyles.esriCommandStyleMenuBar); _toolBarMenu.AddItem(new ControlsMapPanToolClass(), 0, 0, false, esriCommandStyles.esriCommandStyleMenuBar); _toolBarMenu.AddItem(new ControlsMapZoomOutToolClass(), 0, 0, false, esriCommandStyles.esriCommandStyleMenuBar); _toolBarMenu.AddItem(new ControlsMapZoomInToolClass(), 0, 0, false, esriCommandStyles.esriCommandStyleMenuBar); _toolBarMenu.SetHook(axMapControlMainMap.Object); }
public override void think(Network net, int time, Vector value = null) { List <Node> inputs = net.getInputNodes(this.Id); if (!inputs.All(n => n.IsThinkCompleted(time))) { return; } Node input1 = inputs[0]; Vector fv1 = input1.getThinkValues(time); Vector fv2 = input1.getThinkValues(time - 1); if (fv1 == null || fv2 == null) { return; } MeasureTools tool = this.GetMeasureTools(); double v = tool.difference(fv1[0], fv2[0]); base.think(net, time, v); }
private void SetUpCells() { #region MatrixColumns { MatrixColumns.Clear(); double sumColWidthInMillimeters = 0; foreach (ReportColumn reportColumn in ReportDataColumns) { if (reportColumn is ReportDataColumn) { ReportDataColumn reportDataColumn = reportColumn as ReportDataColumn; Unit _widthOfColumn = reportDataColumn.HeaderStyle.Width; RMatrixColumn matrixColumn = new RMatrixColumn(); matrixColumn.Width = _widthOfColumn; MatrixColumns.Add(matrixColumn); sumColWidthInMillimeters += MeasureTools.UnitToMillimeters(_widthOfColumn); } else if (reportColumn is ReportHyperlinkColumn) { } } Item.Width = new Unit(sumColWidthInMillimeters, UnitType.Mm); } #endregion #region MatrixRows this.MatrixRows.Clear(); RMatrixRow matrixRow1 = new RMatrixRow(); { matrixRow1.Height = new Unit(0.25, UnitType.Inch); RMatrixCell mCell; foreach (DataColumn dataColumn in SourceDataTable.Columns) { mCell = new RMatrixCell(); ReportControlItem rDataTableItem; int columnIndex = SourceDataTable.Columns.IndexOf(dataColumn); int reportItemZIndex = columnIndex + 1; ReportColumn reportColumn = reportDataColumns[columnIndex]; if (reportColumn is ReportDataColumn) { ReportDataColumn reportDataColumn = reportColumn as ReportDataColumn; if (this.reportTableGroups.ContainsColumn(reportColumn)) { rDataTableItem = new RTextBox(string.Empty); } else { rDataTableItem = GetReportCellControlItem(reportDataColumn); //if (rDataTableItem is RTextBox) //{ // (rDataTableItem as RTextBox).Value = // string.Format("=CDbl(Fields!{0}.Value)", reportDataColumn.Name); //} //=Sum(CDbl(Fields!Sales.Value)) } mCell.ReportItem = rDataTableItem; matrixRow1.MatrixCells.Add(mCell); } else if (reportColumn is ReportHyperlinkColumn) { } } } this.MatrixRows.Add(matrixRow1); #endregion }