IPolyClass Class

Helpfull class to work with each outline of polygons.

Definition

Namespace: PCBI.MathUtils
Assembly: PCB-Investigator (in PCB-Investigator.exe) Version: 0
C#
public class IPolyClass : IBoundable, InterfacePolyClass
Inheritance
Object    IPolyClass
Implements
InterfacePolyClass, IBoundable

Constructors

IPolyClass Constructor of polygon elements.

Properties

Color Color Property of this polygon, used e.g. at IPolyClass::DrawFilled
DisableSplitToMatrix If set to true, polygon operations might be slower. Handle with care! If true, all polygons which are used for polygon operations must have set this property to true Might only make sense for polygons, which are rotated/moved a lot of times before polygonoperations like Union are done, then true might be more performant Default=false
EdgeCount Count of edges in polygon.
IsTextPoly This field may contain the information, whether the original objects of this polygon had the .nomenclature attribute IODBLayer::PolygonizeNets() fills this information, most other functions not.

Methods

AddArc Add an arc to the polygon with outline elements (e.g. rounds at the endings).
AddCircle Add an complete circle to the polygon.
AddEdge(IEdge) Add an edge (ILineEdge or IArcEdge) to the polygon.
AddEdge(PointD, PointD) Add an ILineEdge to the polygon.
AddEdge(PointD, PointD, PointD, Boolean) Add an arc Edge to the polygon (its create the IArcEdge internal)
AddEdge(PointD, PointD, PointD, Double, Boolean) Add an arc Edge to the polygon (its create the IArcEdge internal)
AddEllipse Calculates an ellipse of an rectangle.
AddLine Add an line to the polygon with outline elments (e.g. rounds at the end).
AddOversize Resulting Polygon will be a) CW if val greater than 0 b) CCW if val smaller than 0
AddPie Add pie to this polygon.
AddPolygon Add complete polygon to current polygon.
AddRectangle Add a rectangle to this polygon.
BuildInternalEdgeHash Builds the internal Edge Hash. Edges might be changed (split) during the process. Use with Caution!
Clear Clears all Edges in the Polygon and resets the Bounds to Empty
Clone Clone the object to get a second polygon with same values.
CombinePolygons Combine two polygons and make one polygon of them. This connect both with two lines who overlapping on start end end.
Difference Calculates the difference between this and a second polygon. It modifies this and returns the reference to this.
DistanceTo(IEdge, PointD, PointD) Calculate distance from this polygon to second polygon.
DistanceTo(IPolyClass, PointD, PointD) Calculate distance from this polygon to second polygon.
DoesIntersect If the SecondObject intersect with this Object it returns true.
Draw Draws the Polygon on the given Graphics by using the current World-Client transformation of the IPCBIWindow.
DrawFilled(Graphics, Color, IPCBIWindow, Int32, Int32) Fills the Polygon on the given Graphics by using the current World-Client transformation of the IPCBIWindow. (Not very performant when used for multiple polygons. Use static IPolyClass.DrawFilled() instead)
DrawFilled(Graphics, Color, MatrixD, Int32, Int32) Fills the Polygon on the given Graphics by using the current World-Client transformation of the IPCBIWindow. (Not very performant when used for multiple polygons. Use static IPolyClass.DrawFilled() instead)
DrawFilled(ListIPolyClass, Graphics, MatrixD, Int32, Int32) Draws the List of Polygons filled on the given Graphics by using the current World-Client transformation of the IPCBIWindow.
DrawFilled(ListIPolyClass, Graphics, Color, IPCBIWindow, Int32, Int32) Draws the List of Polygons filled on the given Graphics by using the current World-Client transformation of the IPCBIWindow.
DrawFilled(ListIPolyClass, Graphics, MatrixD, Int32, Int32, IPolyClassFillMode, Color) Draws the List of Polygons filled on the given Graphics by using the current World-Client transformation of the IPCBIWindow.
DrawFilled(ListIPolyClass, Graphics, Color, IPCBIWindow, Int32, Int32, MatrixD) Draws the List of Polygons filled on the given Graphics by using the current World-Client transformation of the IPCBIWindow.
DrawFilled(ListIPolyClass, Graphics, Color, IPCBIWindow, Int32, Int32, MatrixD, IPolyClassFillMode, Color) Draws the List of Polygons filled on the given Graphics by using the current World-Client transformation of the IPCBIWindow.
DrawOutline Draws the List of Polygons on the given Graphics by using the current World-Client transformation of the IPCBIWindow.
Equals Compares two polygons.
(Overrides ObjectEquals(Object))
EqualsNull Determines whether the IPolyClass is null.
Flatten Flatten cuts all arcs in small line elments with length "FlattenLength" in mils.
FromRectangle Create IPolyClass from Rectangle.
GetArea Calculate the area of this polygon.
GetBounds bounds of polygon
GetCircumference Returns the circumference of the polygon in mils
GetEdgeCount Returns number of Edges in this Polygon
GetEdgeIndex Returns the Index of the given edge in the list
GetEdges Create a new list of Edges from this polygon.
GetHashCode Gets the HashCode.
(Overrides ObjectGetHashCode)
GetHashFromPolygon Gets a string representing a size reduced b/w image of this polygon
GetIntersectingPoints(IPolyClass) Returns a list of Intersecting Points of the Poly with the given Poly
GetIntersectingPoints(IEdge, ListInt32) Returns a list of Intersecting Points of the Poly with the given Edge. Also the Edge-Indices which are intersecting are returned in indexList
GetIntersectingPoints(IEdge, ListInt32, Int32) Returns a list of Intersecting Points of the Poly with the given Edge. Also the Edge-Indices which are intersecting are returned in indexList
GetOutline Get outline elements as IObjectSpecifics.
GetRasterEdges Create a new list of Edges from this polygon with y values in the raster(s) crossing the give Rectangle.
GetSubPolygons Calculate all sub polygons and return a list of them, the list is empty if no subpoly are calculated.
GetSubPolygons(Double) Create a List of all subPolygons.
GetSurfaceFromPolygon(IODBLayer) Create a new Surface on the ParentLayer. This works only if edges are sorted and only one polygon is included.
GetSurfaceFromPolygon(IODBLayer, Boolean) Create a new Surface on the ParentLayer. This works only if edges are sorted!
GetSurfaceFromPolygon(IODBLayer, Boolean, Boolean) Create a new Surface on the ParentLayer. This works only if edges are sorted!
InnerSortOfPolygonElements Sort inner elements and build groubs of connected edges.
Intersect Calculate the intersection part of this and a second polygon (Does not change 'this' polygon).
IsAnyPointOfSecondObjectIncluded Check if any Point of second PolyClass is included in this PolyClass.
IsClockWise Returns true if Polygon is Clockwise
IsClosed Check the whether polygon is closed? This method is very slow, do use it carfully.
isEqualsTol Compares two polygons.
IsPointOfSecondObjectIncluded If the first point of the SecondObject is in this object it returns true;
IsSelfIntersecting Checks all edges for self intersecting of this polygon.
PointInPolygon Checks the given point p is inside of the polygon.
RemoveDoubleEdges If there are double edges in the polygon outline, they are removed. The original polygon will be changed! Some other checks and operations need "clean" polygons without double edges, if necessary call this method first.
Reverse Change direction of edges (Isle to hole and holes to isle).
Rotate Rotate the polygon.
Scale Scales the Polygon
SetInternalPolarity Sets the internal Polarity. This polarity is e.g. used at IPolyClass.Union() to determine if a polygon should be Unioned or Cutted.
SplitInIsleAndHoles Sortes the Sub-Polygons in single Isles (including their holes)
SplitInIsleAndHoles(IPCBIWindow, IODBLayer) Check all subpolygons for holes and isles, make a list of new surfaces for each isle with own holes.
Transform Transforms the poylgon by the given Matrix
Translate(Double, Double) Move the poygon.
Translate(Single, Single) Move the poygon.
Union(IPolyClass) Union combines this and the second poly, it return this with modifications.
Union(ListIPolyClass) Union combines a list of polygones to a new polygon.
UpdateBounds Check all edges and calculate bound new.

Operators

Equality(IPolyClass, IPolyClass) override the operator == to campair two IPolyClass
Inequality(IPolyClass, IPolyClass) override the operator !=

Fields

Tag Temporary object to store in the IPolyClass.

Extension Methods

CalculateCenterOfGravity Calculate the center of gravity for the polygon.
(Defined by Extensions)
CleanUpPolygon Combine lines and arcs if they have same start/end point and same angle/center/direction. This removes some of the edges to get simpl polygons.
(Defined by Extensions)
CleanUpPolygon Combine lines and arcs if they have same start/end point and same angle/center/direction. This removes some of the edges to get simpl polygons.
(Defined by Extensions)
GetConvexHullOfPoly Returns the convex Hull of a given Polygon. Only works on closed and flattened polygons.
(Defined by Extensions)
GetMinBoundingBox Calculates the minimum bounding box of a convex polygon
(Defined by Extensions)
GetPropValue
(Defined by ExtensionsMethods)
IsCircle
(Defined by Extensions)
IsOctagon Try to find out it is a octagon. This requires sorted lines for each side of the octagon.
(Defined by Extensions)
IsRectangle Try to find out it is a rectangle. This requires sorted lines for each side of the rectangle.
(Defined by Extensions)

See Also