当前位置: 首页>>代码示例>>C#>>正文


C# Plane.Signal方法代码示例

本文整理汇总了C#中Plane.Signal方法的典型用法代码示例。如果您正苦于以下问题:C# Plane.Signal方法的具体用法?C# Plane.Signal怎么用?C# Plane.Signal使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Plane的用法示例。


在下文中一共展示了Plane.Signal方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: GetSectionElementsVisibleInSketch

        private List<SectionElement> GetSectionElementsVisibleInSketch(Section section, Plane minPlane, Plane maxPlane, List<SteelThicknessGaugingPoint> steelThicknessGaugingPoints, Vector3D normal)
        {
            try
            {
                SortedList<int, Plate> targetPlates = new SortedList<int, Plate>();
                foreach (SteelThicknessGaugingPoint steelThicknessGaugingPoint in steelThicknessGaugingPoints)
                {
                    Plate targetPlate = steelThicknessGaugingPoint.TargetElement as Plate;
                    if (targetPlate == null || targetPlates.ContainsKey(targetPlate.ID))
                    {
                        continue;
                    }

                    targetPlates.Add(targetPlate.ID, targetPlate);
                }

                List<SectionElement> sectionElements = new List<SectionElement>();

                SectionElementsSet sectionElementsSet = section.GetPermanentSectionElementsSet("Plate");
                foreach (Plate plate in sectionElementsSet.Elements.Values)
                {
                    Point3D point = plate.Design.Geometry.Primitive(0).Centroid;

                    Vector3D plateNormal = plate.Design.Geometry.Primitive(0).Normal;
                    plateNormal.Normalize();

                    double angle = Vector3D.Angle(plateNormal, normal);

                    if ((minPlane.Signal(point) == 1 && maxPlane.Signal(point) == -1 && angle < 1.0) || targetPlates.ContainsKey(plate.ID))
                    {
                        sectionElements.Add(plate);
                    }
                }

                return sectionElements;
            }
            catch (Exception ex)
            {
                throw new ApplicationException("Section elements visible in skectch cannot be get!", ex);
            }
        }
开发者ID:phdsoft,项目名称:Teste_de_Codigo,代码行数:41,代码来源:CampaignConverter.cs

示例2: GetPointsBetweenPlanes

        private List<SteelThicknessGaugingPoint> GetPointsBetweenPlanes(List<SteelThicknessGaugingPoint> steelThicknessGaugingPoints, Plane minPlane, Plane maxPlane)
        {
            try
            {
                List<SteelThicknessGaugingPoint> pointsBetweenPlanes = new List<SteelThicknessGaugingPoint>();
                foreach (SteelThicknessGaugingPoint steelThicknessGaugingPoint in steelThicknessGaugingPoints)
                {
                    Point3D point = steelThicknessGaugingPoint.PointGeometry.Position;
                    if (minPlane.Signal(point) == 1 && maxPlane.Signal(point) == -1)
                    {
                        pointsBetweenPlanes.Add(steelThicknessGaugingPoint);
                    }
                }

                return pointsBetweenPlanes;
            }
            catch (Exception ex)
            {
                throw new ApplicationException("Points between planes cannot be get!", ex);
            }
        }
开发者ID:phdsoft,项目名称:Teste_de_Codigo,代码行数:21,代码来源:CampaignConverter.cs


注:本文中的Plane.Signal方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。