////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        // 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);
            }
        }
Exemplo n.º 2
0
Arquivo: Size.cs Projeto: jakedw7/iAM
        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;
        }
Exemplo n.º 3
0
        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;
            }
        }
Exemplo n.º 5
0
 /// <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();
     }
 }
Exemplo n.º 6
0
        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] + ")");
        }
Exemplo n.º 7
0
 public MeasureTools GetMeasureTools()
 {
     if (_measureTools == null)
     {
         _measureTools = MeasureTools.GetMeasure(this.Cataory);
     }
     return(_measureTools);
 }
Exemplo n.º 8
0
        public Application CreateInventorConnection()
        {
            try
            {
                ThisApplication = (Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Inventor.Application");

                MeasureTools = ThisApplication.MeasureTools;

                return(ThisApplication);
            }
            catch
            {
                return(null);
            }
        }
Exemplo n.º 9
0
        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;
        }
Exemplo n.º 10
0
        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));
        }
Exemplo n.º 11
0
        /// <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);
        }
Exemplo n.º 12
0
        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));
        }
Exemplo n.º 13
0
            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);
            }
Exemplo n.º 14
0
        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() + ",");
        }
Exemplo n.º 15
0
        /// <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);
        }
Exemplo n.º 16
0
        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);
        }
Exemplo n.º 17
0
            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
            }