ShapeSelectionPolygon (クラス)
public final ShapeSelectionPolygon
パッケージ: CURL.GUI.SHAPES

Shape を選択するための領域を記述するポリゴン。

説明

Shape.self-intersects-polygon? に渡されるオブジェクトです。選択領域の内部に形状を配置するかどうかを決定するために使用されます。これが四角形ではなくポリゴンであるのは、ポリゴンは形状のローカル座標系に変換されるため回転できるからです。ただし、ポリゴンに常に 4 つのポイントが含まれるとは限りません。
このポリゴンは必ず凸型であり、頂点は反時計回りの順序になります。ただし、形状階層に反転スケールが含まれている場合を除きます。

プロパティ
bounds:ShapeSelectionPolygon.points 内のすべてのポイントを含む軸平行の境界四角形。
フィールド public constant ShapeSelectionPolygon.bounds:GRect
points:この ShapeSelectionPolygon を構成する頂点を含む配列。
フィールド public constant ShapeSelectionPolygon.points:{FastArray-of Distance2d}

メソッド
bounds-intersect-rectangle?:簡単な bounding-box テストを実行します。
public {ShapeSelectionPolygon.bounds-intersect-rectangle?
rect:GRect
}:bool
contains-point?:このポリゴンにポイント (x, y) が含まれているかどうかを判定します。
public {ShapeSelectionPolygon.contains-point?}:bool
intersects-rectangle?:交差テストを実行します。
public {ShapeSelectionPolygon.intersects-rectangle? rect:GRect}:bool
intersects-Region?:交差テストを実行します。
public {ShapeSelectionPolygon.intersects-Region?
region:Region,
bounding-box:#GRect = null
}:bool
intersects-segment?:交差テストを実行します。
public {ShapeSelectionPolygon.intersects-segment?}:bool
メソッド 継承 Object: object-describe, object-describe-for-debugging, object-serialize




プロパティ詳細
bounds (フィールド)
public constant ShapeSelectionPolygon.bounds:GRect

ShapeSelectionPolygon.points 内のすべてのポイントを含む軸平行の境界四角形。

注意事項

このオブジェクトの内容は変更しないでください。


points (フィールド)
public constant ShapeSelectionPolygon.points:{FastArray-of Distance2d}

この ShapeSelectionPolygon を構成する頂点を含む配列。

注意事項

この配列の内容は変更しないでください。





メソッド詳細
bounds-intersect-rectangle? (メソッド)
public {ShapeSelectionPolygon.bounds-intersect-rectangle?
rect:GRect
}:bool

簡単な bounding-box テストを実行します。

説明

このメソッドは、rectShapeSelectionPolygon.bounds と交差するかどうかをすばやく判断するために使用します。このメソッドが true を返しても、rect が実際にはポリゴンと交差しない場合があります。ただし、このメソッドが false を返した場合は、rect がこのポリゴンと交差することはありません。


contains-point? (メソッド)
public {ShapeSelectionPolygon.contains-point?}:bool

このポリゴンにポイント (x, y) が含まれているかどうかを判定します。

注意事項

ほとんどの交差の操作と同様に、テストを何度も実行する場合は、境界ボックスを準備しておくと便利です。このボックスにテスト対象のすべてのオブジェクトを格納し、ShapeSelectionPolygon.bounds-intersect-rectangle? を使用して四角形とポリゴンが交差しているかどうかを確認します。このボックスを準備しなければ、不要な計算を何度も実行する可能性があります。


intersects-rectangle? (メソッド)
public {ShapeSelectionPolygon.intersects-rectangle? rect:GRect}:bool

交差テストを実行します。

説明

このメソッドは、rect がこのポリゴンと交差するかどうかを判断します。まず ShapeSelectionPolygon.bounds-intersect-rectangle? を使用してこのポリゴンの境界をテストします。したがって、アプリケーションでこのテストを実行する必要はありません。

注意事項

この操作にはすべての境界線が含まれます。


intersects-Region? (メソッド)
public {ShapeSelectionPolygon.intersects-Region?
region:Region,
bounding-box:#GRect = null
}:bool

交差テストを実行します。

説明

このメソッドは、region がこのポリゴンと交差するかどうかを判断します。bounding-box が null でない場合は、境界ボックスのテストだけを実行ます。パフォーマンス上の理由から、独自の境界ボックス テストを実行するか、または境界ボックスをこのメソッドに渡すことをお勧めします。

注意事項

この操作にはすべての境界線が含まれます。


intersects-segment? (メソッド)
public {ShapeSelectionPolygon.intersects-segment?}:bool

交差テストを実行します。

説明

このポリゴンのエッジと (x0, y0), (x1, y1) によって形成されるライン セグメントの交差をテストします。ライン セグメントがポリゴンの内部に完全に含まれている場合、このメソッドは false を返します。

注意事項

ほとんどの交差の操作と同様に、テストを何度も実行する場合は、境界ボックスを準備しておくと便利です。このボックスにテスト対象のすべてのオブジェクトを格納し、ShapeSelectionPolygon.bounds-intersect-rectangle? を使用して四角形とポリゴンが交差しているかどうかを確認します。このボックスを準備しなければ、不要な計算を何度も実行する可能性があります。