Skip to main content
View as Markdown

IPCB_SplitPlane interface

A split plane on an internal plane layer, an area of the plane bounded by an outline and poured as regions.

public interface IPCB_SplitPlane : IPCB_Group

Namespace: PCB · Assembly: Altium.SDK.Interfaces

Inherits: IPCB_Primitive → IPCB_Group

Remarks​

Split planes can be placed only on internal plane layers. They are group objects: the regions created when a split plane is poured (Pour) are its child objects. Use GroupIterator_Create and GroupIterator_Destroy to iterate them.

Polygon pours are represented by IPCB_Polygon, not by this interface.

Properties​

PropertyTypeAccessDescription
AreaSizedoubleget; setThe area enclosed by the split plane's outline, in square internal units.
HitPrimitiveboolgetWhether the given primitive touches the split plane's outline or lies inside it.
PointCountintget; setThe number of segments in the split plane's outline.
SegmentsPolySegmentget; setThe segments of the split plane's outline, by index.
StrictHitTestboolgetWhether the given point lies inside the split plane's bounding rectangle and inside its outline.

AreaSize​

The area enclosed by the split plane's outline, in square internal units.

double GetState_AreaSize();
void SetState_AreaSize(double argValue);

Type: double · Access: read/write

The value is approximate: it does not take the width of the outline into account. SetState_XSizeYSize_1 recalculates it from the outline; an assigned value is stored as given.

HitPrimitive​

Whether the given primitive touches the split plane's outline or lies inside it.

bool GetState_HitPrimitive(IPCB_Primitive argPrimitive);

Type: bool · Access: read-only · Index: argPrimitive (IPCB_Primitive)

The accessors are extension methods of IPCB_SplitPlaneHelper (using PCB;).

Returns true when the primitive's reference point is inside the outline or the primitive overlaps one of the outline's segments. Returns false for null.

PointCount​

The number of segments in the split plane's outline.

int GetState_PointCount();
void SetState_PointCount(int argValue);

Type: int · Access: read/write

Segments​

The segments of the split plane's outline, by index.

PolySegment GetState_Segments(int argI);
void SetState_Segments(int argI, PolySegment argValue);

Type: PolySegment · Access: read/write · Index: argI (int)

The accessors are extension methods of IPCB_SplitPlaneHelper (using PCB;).

Each segment is a line (Kind is TPolySegmentType.ePolySegmentLine) given by its vertex Vx, Vy, or an arc (TPolySegmentType.ePolySegmentArc) given by its center Cx, Cy, its Radius and the angles Angle1 and Angle2. Coordinates are in internal units (10,000 per mil). Valid indexes are from 0 to PointCount inclusive; any other index returns a segment with all fields zero, and assigning a segment at such an index does nothing. After changing the outline, call SetState_XSizeYSize_1 to recalculate the bounding rectangle and AreaSize.

See also: PolySegment

StrictHitTest​

Whether the given point lies inside the split plane's bounding rectangle and inside its outline.

bool GetState_StrictHitTest(int argHitX, int argHitY);

Type: bool · Access: read-only · Index: argHitX (int): The X coordinate of the point, in internal units (10,000 per mil)., argHitY (int): The Y coordinate of the point, in internal units (10,000 per mil).

Methods​

MethodReturnsDescription
AcceptsLayerboolReturns whether the split plane can be placed on the given layer.
GetNegativeRegionIPCB_RegionReturns a region that covers the part of the split plane's outline that is not covered by its child regions.
GrowPolyshapevoidMoves the edges of the split plane's outline outwards or inwards by the given distance.
Internal_xBoundingRectangleICoordRect
PointInPolygonboolReturns whether the given point lies inside the split plane's outline.
PourvoidPours the split plane, regenerating its child regions.
PrimitiveInsidePolyboolReturns whether the given primitive lies completely inside the split plane's outline.
RemovePourvoidUndoes the last pour of the split plane, removing the child regions it created and restoring the previous ones.
RotateAroundXYvoidRotates the split plane about the given point.
SetState_XSizeYSize_1boolRecalculates the split plane's bounding rectangle and AreaSize from its outline.
XBoundingRectangleCoordRectReturns the bounding rectangle of the split plane's outline.

AcceptsLayer​

Returns whether the split plane can be placed on the given layer.

bool AcceptsLayer(TV6_Layer argLayer);
bool AcceptsLayer(int argLayer);
ParameterTypePassing
argLayerTV6_Layervalue

Returns: bool

The first overload is an extension method of IPCB_SplitPlaneHelper (using PCB;) with typed parameters; the second is declared by the interface.

Returns true for the internal plane layers (TV6_Layer.eV6_InternalPlane1 to TV6_Layer.eV6_InternalPlane16) and false for any other layer.

GetNegativeRegion​

Returns a region that covers the part of the split plane's outline that is not covered by its child regions.

IPCB_Region GetNegativeRegion();

Returns: IPCB_Region

Extension method of IPCB_SplitPlaneHelper (using PCB;).

The region is on the split plane's layer. Returns null when the child regions cover the whole outline.

GrowPolyshape​

Moves the edges of the split plane's outline outwards or inwards by the given distance.

void GrowPolyshape(int argDist);
ParameterTypePassingDescription
argDistintvalueThe distance, in internal units (10,000 per mil). A positive value moves the edges outwards, so the area grows; a negative value moves them inwards.

Returns: nothing (void)

Does nothing when the distance is 0 or the outline has fewer than two points.

Internal_xBoundingRectangle​

No description yet.

ICoordRect Internal_xBoundingRectangle();

Returns: ICoordRect

PointInPolygon​

Returns whether the given point lies inside the split plane's outline.

bool PointInPolygon(int argHitX, int argHitY);
ParameterTypePassingDescription
argHitXintvalueThe X coordinate of the point, in internal units (10,000 per mil).
argHitYintvalueThe Y coordinate of the point, in internal units (10,000 per mil).

Returns: bool

Pour​

Pours the split plane, regenerating its child regions.

void Pour();

Returns: nothing (void)

PrimitiveInsidePoly​

Returns whether the given primitive lies completely inside the split plane's outline.

bool PrimitiveInsidePoly(IPCB_Primitive argPrimitive);
bool PrimitiveInsidePoly(object argPrimitive);
ParameterTypePassing
argPrimitiveIPCB_Primitivevalue

Returns: bool

The first overload is an extension method of IPCB_SplitPlaneHelper (using PCB;) with typed parameters; the second is declared by the interface.

Returns true when the primitive's reference point is inside the outline and the primitive does not touch any of the outline's segments. Returns false for null.

RemovePour​

Undoes the last pour of the split plane, removing the child regions it created and restoring the previous ones.

void RemovePour();

Returns: nothing (void)

Does nothing when the split plane is not on a board.

RotateAroundXY​

Rotates the split plane about the given point.

void RotateAroundXY(int argX, int argY, double argngle);
ParameterTypePassingDescription
argXintvalueThe X coordinate of the point to rotate about, in internal units (10,000 per mil).
argYintvalueThe Y coordinate of the point to rotate about, in internal units (10,000 per mil).
argngledoublevalue

Returns: nothing (void)

SetState_XSizeYSize_1​

Recalculates the split plane's bounding rectangle and AreaSize from its outline.

bool SetState_XSizeYSize_1();

Returns: bool

Returns true.

XBoundingRectangle​

Returns the bounding rectangle of the split plane's outline.

CoordRect XBoundingRectangle();

Returns: CoordRect

Extension method of IPCB_SplitPlaneHelper (using PCB;).

Inherited members​

Returned by​

IPCB_SplitPlaneRegion.SplitPlane

Accepted by​

IPCB_ContourMaker.MakeContour_9, IPCB_ContourMaker2.MakeContour_19