GraphicShape (クラス)
public GraphicShape {inherits Shape}
パッケージ: CURL.GUI.SHAPES

Shape 階層への Graphic の埋め込みを可能にする Shape の実装。

説明

GraphicShape を使用すると、GraphicShape の子として追加できます。すべての Shape の子と同様に、ローカル変換はその親を基準にします。ただし、Graphic は回転またはスケール変更できないので、回転またはスケーリングが変換に含まれていても無視されます。(この技術は「ビルボード」と呼ばれることもあります。)

プログラミング注意事項

GraphicShape は、そのコンストラクタを使用して明示的に作成できます。別の方法として、GraphicShape を必要とするメソッドに渡されると、暗黙的に GraphicShape にキャストされます。

注意事項

Graphicは、GraphicShapeを要求しなくとも、Canvasの通常の子でもありうることに留意してください。GraphicShapeを使用する唯一の理由は、通常、変形またはオプションの継承の為に、シェイプの階層そのものの中に、Graphicを表示することだけです。
このオブジェクトは、"GraphicShape"のスタイル ルールを記述することによってスタイル化することが出来ます。

次の例では、GraphicShape に対する親の変換の結果を表示するアニメーション シーンを示しています。四角形が親で GraphicShape が子です。

{import * from CURL.GUI.SHAPES}

{let parent:RectangleShape =
    {RectangleShape
        {GRect .5cm, .5cm, .5cm, .5cm},
        translation = {Distance2d 2.5cm, 2.5cm}
    }
}
{value
    {parent.add
        {CommandButton
            horigin = "left",
            label = "Try to hit me!",
            {on Action do
                {if parent.color == FillPattern.black then
                    set parent.color = FillPattern.gray
                 else
                    set parent.color = FillPattern.black
                }
            }
        }
    }

    let start:DateTime = {DateTime}
    let tmr:Timer =
        {parent.animate
            frequency=30fps, || 30 frames per second
            repeat = 0,
            {on TimerEvent do
                let elapsed:Time = {start.elapsed}
                {parent.set-translation-in-parent 2.5cm + 1cm * {sin elapsed * (30deg / 1s)}, 2.5cm}
                {parent.set-rotation elapsed * (20deg / 1s)}
            }
        }
    let run-button:CommandButton =
        {CommandButton label = "Start",
            {on Action do
                set start = {DateTime}
                set tmr.repeat = 500
            }
        }
    let stop-button:CommandButton =
        {CommandButton label = "Stop",
            {on Action do
                set tmr.repeat = 0
                
            }
        }
    {HBox
        spacing = .125cm,
        run-button,
        stop-button
    }
}

{Canvas
    width = 10cm,
    height = 10cm,
    parent
}

コンストラクタ
clone-appearance-from:新規オブジェクトを生成するためのコンストラクタ。
コンストラクタ protected {GraphicShape.clone-appearance-from
other:GraphicShape,
fixup:#{proc-type {Visual, Visual}:Visual}
}
default:新しい GraphicShape を作成します。
コンストラクタ public {GraphicShape.default ...}

プロパティ
clonable-class?:当該クラスがクローン化可能である場合は、true を返します。その他の場合は false を返します。
アクセサ protected GraphicShape.clonable-class?:bool
graphic:この ShapeGraphic 内に含まれるグラフィックです。
アクセサ public final GraphicShape.graphic:#Graphic
セッター public final GraphicShape.graphic:#Graphic
shape-root:Shape 階層の現在の形状ルート (オプション形式)。
非ローカル オプション public GraphicShape.shape-root:#ShapeRoot
style-element:スタイリングの目的のための、この Visual の "要素" や "型" です。
アクセサ public GraphicShape.style-element:String
プロパティ 継承 Shape: as-Shape, border-color, color, draw-operation, graphical-parent, option-parent, possibly-displayed?, selection-context, shape-parent, shape-selectable, stroke-thickness, transformation, visible?
プロパティ 継承 ShapeContainerBase: as-ShapeRoot, shape-children
プロパティ 継承 Visual: _style-element, completely-clonable-children?, cursor, data-source, display-context, dragee, font-size, has-key-focus?, input-method-enabled?, input-method-keyboard-mode, name, options, style-class, style-manager, style-options, test-child?, test-description, test-name, test-parent?, test-type-name, test-visible?, tooltip, user-data, visual-parent
プロパティ 継承 DataBindingTarget: data-binding-context, data-bindings
プロパティ 継承 EventTarget: event-handlers
プロパティ 継承 OptionListInterface: option-register-proc, options-present-here, registered-option-keys

メソッド
clone-appearance-helper:クローンを作成し、クローン自体を返します。
protected {GraphicShape.clone-appearance-helper
fixup:#{proc-type {Visual, Visual}:Visual}
}:Visual
draw:このオブジェクトの可視表現を描画します。
public {GraphicShape.draw renderer2d:Renderer2d}:void
fire-crossing-event:他のイベントから PointerCrossing を初期化して、子 Visual をターゲットとして、そのイベントを発生させます。
public {GraphicShape.fire-crossing-event}:void
get-own-bounds:ローカル座標系におけるこの Shape の四角形のレンダリング境界を計算します。
public {GraphicShape.get-own-bounds dest:GRect = {GRect.empty}}:GRect
get-own-bounds-in-shape-root:形状ルートである祖先の座標系における、この形状の四角形のレンダリング境界を計算します。
public {GraphicShape.get-own-bounds-in-shape-root
dest:GRect = {GRect.empty}
}:GRect
get-own-layout-bounds:ローカル座標系におけるこの Shape の四角形のレイアウト境界を計算します。
public {GraphicShape.get-own-layout-bounds
lc:LayoutContext,
width-first?:bool = true,
dest:GRect = {GRect.empty}
}:GRect
non-keyword-init-arg: InitRestArgParser.process-rest-args で非キーワード引数が検出されると、呼び出されます。
public {GraphicShape.non-keyword-init-arg a:any}:void
note-graphic-detaching:GraphicShape に、その Graphic が階層から切り離されることを通知する場合に呼び出されます。
public {GraphicShape.note-graphic-detaching}:void
notify-option-children:このオブジェクトのオプションの子にオプションが変更されたことを通知します。
public {GraphicShape.notify-option-children
item:OptionItem,
removed?:bool
}:void
register-options:このオブジェクトがバインドのモニタリングを必要とする非ローカル オプション キーを登録します。
public {GraphicShape.register-options
p:{proc-type {OptionKey}:void}
}:void
request-draw:描画する Visual に属するピクセルを確認します。
public {GraphicShape.request-draw
layout-context:LayoutContext = {self.get-layout-context}
}:void
request-draw-self:再描画する Shape に属するピクセルを要求します。
public {GraphicShape.request-draw-self
layout-context:LayoutContext = {self.get-layout-context}
}:void
self-contains-point?:ポイントがこの Shape 内にあるかどうかを判定します。
public {GraphicShape.self-contains-point? x:Distance, y:Distance}:bool
self-intersects-polygon?:ポリゴンがこの Shape と交差するかどうかを判定します。
public {GraphicShape.self-intersects-polygon?}:bool
transformation-changed:Shape.transformation が変更されたことの通知。
public {GraphicShape.transformation-changed}:void
transformation-changing:Shape.transformation が変更されることの通知。
public {GraphicShape.transformation-changing}:void
メソッド 継承 Shape: apply-rotation, apply-scale, apply-transformation, apply-translation, apply-translation-in-parent, constrain-own-layout-bounds, constrain-shape-layout-bounds, contains-point?, detach, find-graphical-ancestor, fire-in-child, get-display-context, get-down-orientation-in-shape-parent, get-graphical-root, get-gui-path, get-gui-path-to-child, get-local-device-pixel-size, get-origin-in-graphical-ancestor, get-origin-in-root, get-origin-in-shape-parent, get-origin-in-shape-root, get-right-orientation-in-shape-parent, get-shape-bounds, get-shape-bounds-in-shape-root, get-shape-layout-bounds, get-top-left-in-ancestor, get-transformation-to-shape-root, keyword-init-arg, option-change-notify, overdraw-for-selection, quantize-line-thickness, reset-transformation, set-rotation, set-scale, set-transformation, set-translation-in-parent, to-Graphic, transform-from-display-coordinates, transform-from-graphical-root-coordinates, transform-point-from-shape-root, transform-point-to-shape-root, transform-to-display-coordinates, transform-to-graphical-root-coordinates, transform-vector-from-shape-root, transform-vector-to-shape-root
メソッド 継承 ShapeContainerBase: add, clear, clone-children, draw-shape-child, draw-shape-children, get-all-children-at-point, get-child-at-point, get-leaf-at-point, get-shape-root, note-attached, note-detaching, on-drag-enter, on-pointer-enter, on-pointer-envelope-event, remove, set-shape-index, set-shape-index-after, set-shape-index-before, shape-container-fire-inferior-crossing-event, shape-container-handle-crossing, shape-container-pick-child, shape-container-pointer-enter-occurred, shape-container-pointer-leave-occurred
メソッド 継承 Visual: add-from-init-args, animate, change-cursor, clonable-appearance?, clone-appearance, find-test-children, get-focus-manager, get-layout-context, get-test-parent, get-test-property, get-text, get-view, maybe-fire-attach-event, maybe-fire-detach-event, note-caret-position, on-drag-leave, on-pointer-leave, pop-cursor, prepare-test-object, prepare-test-parent, push-cursor, quantize-width, refresh-style-options, release-key-focus, request-key-focus, scroll-to-include, test-record, test-run, xy-offset-to
メソッド 継承 GraphicOptions: any-to-Distance
メソッド 継承 GuiEventTarget: handle-delegate-event, handle-event, on-action, on-cancel-mode, on-command-changed, on-commit, on-composition-change-event, on-composition-result-event, on-context-menu-event, on-current-record-change-request, on-current-record-changed, on-destroy-notify, on-destroy-requested, on-drag-over, on-drag-pointer, on-drag-started, on-drop, on-end-composition-event, on-focus-event, on-focus-in, on-focus-out, on-gesture, on-gesture-begin, on-gesture-end, on-gesture-magnify, on-gesture-pan, on-gesture-rotate, on-gesture-swipe, on-gesture-tap, on-gesture-touch, on-grab-release, on-gui-event, on-input-method-event, on-inspection, on-key-event, on-key-press, on-pointer-button, on-pointer-crossing, on-pointer-event, on-pointer-motion, on-pointer-press, on-pointer-release, on-pointer-scroll, on-raw-key-event, on-raw-key-press, on-raw-key-release, on-reset, on-selectable-added, on-selectable-removed, on-selection-changed, on-selection-context-activated, on-selection-context-deactivated, on-selection-event, on-start-composition-event, on-start-event, on-stop-event, on-view-activate, on-view-deactivate, on-window-close, remove-event-handlers-for-event-class
メソッド 継承 DataBindingTarget: add-data-binding, get-data-binding, refresh-data-binding, remove-data-binding, unset-property, update-data-binding, validate-data-binding
メソッド 継承 EventTarget: accepts-event-class?, add-event-handler, event-handler-present?, remove-event-handler, verify-event
メソッド 継承 OptionListInterface: add-option, add-style-option, change-option-parent-notify, clone-options, get-option, get-option-by-name, local-add-notify, local-remove-notify, name-to-option-key, new-option-item, option-changed, option-lookup, option-lookup-here, option-propagate-notify, option-set?, propagate-option-change, remove-option, remove-style-option, remove-styles, set-option-by-name, set-style-option-by-name, unset-option-by-name, unset-style-option-by-name
メソッド 継承 BasicEventTarget: enqueue-event
メソッド 継承 InitRestArgParser: process-rest-args
メソッド 継承 Object: object-describe, object-describe-for-debugging, object-serialize



コンストラクタ詳細
clone-appearance-from (コンストラクタ)
protected {GraphicShape.clone-appearance-from
other:GraphicShape,
fixup:#{proc-type {Visual, Visual}:Visual}
}

新規オブジェクトを生成するためのコンストラクタ。

other: クローンする GraphicShape
fixup:
各クローンを作成するために呼び出されるプロシージャ。クローン化する時に使用され GraphicShape.clone-children に渡されます。
このプロシージャは二つの引数と共に呼び出されます。元のオブジェクトと clone-appearance のメカニズムによって生成されたコピーオブジェクトです。このプロシージャによって返された値はクローンとして使用されます。このプロシージャはコピーするオブジェクトに修正を加えて返すことができます。このプロシージャが null を返すことはできません。

説明

クローン化をサポートする GraphicShape のサブクラスはこのコンストラクタを呼び出すコンストラクタを持たなければなりません。クローンされた子に追加しなければならない情報があるかどうか分からない場合、このコンストラクタはサブクラスの子のクローンを作成しません。このクラスのサブクラスは子のクローンを作成しそれらを追加する必要があります。追加の情報が必要でない場合、単に GraphicShape.clone-children を呼び出すだけです。そうでない場合は、GraphicShape.clone-children をオーバーライドしそれを呼び出さなければなりません。通常、clone-apperance-from コンストラクタから呼び出される GraphicShape.clone-children は以下のようになります。
{if {type-of self} == {compile-time-type-of self} then
    {self.clone-children other, fixup}
}


default (コンストラクタ)
public {GraphicShape.default ...}

新しい GraphicShape を作成します。

...: 通常の Shape の作成引数を渡せます。たとえば、イニシャライザ、変換、子 Shape などです。詳細については、Shape.default を参照してください。

説明

残余引数を使用して、このオブジェクトに含める Graphic を渡すこともできますそうしない場合は、オブジェクトにグラフィックは含まれません (GraphicShape.graphicnull になる) 。ただし、後で GraphicShape.graphic セッターを使用して Graphic を追加できます。



プロパティ詳細
clonable-class? (アクセサ)
アクセサ protected GraphicShape.clonable-class?:bool

当該クラスがクローン化可能である場合は、true を返します。その他の場合は false を返します。

オーバーライド

既定の実装は false を返します。クローン化機能を提供するクラスは、{type-of self} == {compile-time-type-of self} を返すためには、このゲッターをオーバーライドする必要があります。クローン化可能な Visual が必ずしもクローン化可能であるとは限らないので、単に true を返すだけでは正しくありません。
このメソッドをオーバーライドする場合は、Visual.clone-appearance-helper もオーバーライドする必要があります。


graphic (アクセサ)
アクセサ public final GraphicShape.graphic:#Graphic
セッター public final GraphicShape.graphic:#Graphic

この ShapeGraphic 内に含まれるグラフィックです。

説明

このセッターを使用して、グラフィックを追加、削除、または置換できます。


shape-root (非ローカル オプション)
public GraphicShape.shape-root:#ShapeRoot

Shape 階層の現在の形状ルート (オプション形式)。

説明

このオプションを指定すると、Shape の形状ルートである祖先が変更された場合に簡単に通知を受け取ることができます。現在の形状ルートを取得するには、ShapeContainerBase.get-shape-root を使用する必要があります。
このオプションは、ShapeRoot オブジェクトに対してのみ設定してください。


style-element (アクセサ)
アクセサ public GraphicShape.style-element:String

スタイリングの目的のための、この Visual の "要素" や "型" です。

説明

この実装によって Visual._style-elementの値が返されますが、通常は定数を返すためにオーバーライドされます。

オーバーライド

Visual のサブクラスのスタイルが他のオブジェクトと異なる場合、このゲッターは適切な文字列を返すようにオーバーライドされる必要があります。 慣例では,この文字列はクラス名または、オブジェクトを生成するマークアップの名前です。
オーバーライドでは、空の文字列でないかぎり、self._style-elementを返さなければなりません。
導入: バージョン 6.0





メソッド詳細
clone-appearance-helper (メソッド)
protected {GraphicShape.clone-appearance-helper
fixup:#{proc-type {Visual, Visual}:Visual}
}:Visual

クローンを作成し、クローン自体を返します。

オーバーライド

既定の実装はエラーをスローします。クローン化機能を提供するクラスは、
{{compile-time-type-of self}.clone-appearance-from self, fixup}
を返すためには、このゲッターをオーバーライドする必要があります。


draw (メソッド)
public {GraphicShape.draw renderer2d:Renderer2d}:void

このオブジェクトの可視表現を描画します。

renderer2d: このオブジェクトを使用してそれ自身を描画する Renderer2d

オーバーライド

Shape をサブクラス化する場合は、このメソッドをオーバーライドする必要があります。


fire-crossing-event (メソッド)
public {GraphicShape.fire-crossing-event}:void

他のイベントから PointerCrossing を初期化して、子 Visual をターゲットとして、そのイベントを発生させます。

ce: 初期化して発生させる PointerCrossing
e: ソース イベント。


get-own-bounds (メソッド)
public {GraphicShape.get-own-bounds dest:GRect = {GRect.empty}}:GRect

ローカル座標系におけるこの Shape の四角形のレンダリング境界を計算します。

dest: データを返すために使用されるオプションの GRect オブジェクト。

戻り値

境界を含む GRect オブジェクト。これは、常に dest と同じオブジェクトになります。この GRect は正しい形式である必要があります。つまり、次の条件が true でなければなりません。 -dest.lextent <= dest.rextent and -dest.ascent <= dest.descent

説明

返された境界は、このオブジェクトによって描画されるすべてのピクセルをカバーしている必要があります。ただし、このオブジェクトのすべての子を含んでいません

注意事項

レンダリング境界 (get-own-bounds) とレイアウト境界 (get-own-layout-bounds) は、通常似ていますが、同じではありません。特に、レンダリング境界は非常に包括的ですが、レイアウト境界はそれぞれが整然と隣接するため、Shape を厳密に記述しなければならなりません。

オーバーライド

Shape をサブクラス化する場合は、このメソッドをオーバーライドする必要があります。データを返すには、dest パラメータを使用する必要があります。


get-own-bounds-in-shape-root (メソッド)
public {GraphicShape.get-own-bounds-in-shape-root
dest:GRect = {GRect.empty}
}:GRect

形状ルートである祖先の座標系における、この形状の四角形のレンダリング境界を計算します。

dest: データを返すために使用されるオプションの GRect オブジェクト。

戻り値

境界を含む GRect オブジェクト。これは、常に dest と同じオブジェクトになります。この GRect は正しい形式である必要があります。つまり、次の条件が true でなければなりません。 -dest.lextent <= dest.rextent and -dest.ascent <= dest.descent

説明

返された境界は、このオブジェクトによって描画されるすべてのピクセルをカバーしている必要があります。ただし、このオブジェクトのすべての子を含んでいません
このメソッドは、Shape.get-own-bounds を呼び出して境界を正しい座標系に変換するために実装されます。

注意事項

形状ルートを持たない形状に対してこのメソッドを呼び出すことはできません。例外が発生します。

オーバーライド

軸平行の四角形を使用するよりも厳密な方法でオブジェクトの境界を変換できる場合は、このメソッドを独自の Shape 実装でオーバーライドすることをお勧めします。


get-own-layout-bounds (メソッド)
public {GraphicShape.get-own-layout-bounds
lc:LayoutContext,
width-first?:bool = true,
dest:GRect = {GRect.empty}
}:GRect

ローカル座標系におけるこの Shape の四角形のレイアウト境界を計算します。

lc: このレイアウト ネゴシエーションで有効な LayoutContext
width-first?: GraphicShape の場合、width-first レイアウト ネゴシエーションを使用して計算されるべき境界であるかを示します。このパラメータは、通常他のサブクラスでは使用されません。
dest: データを返すために使用されるオプションの GRect オブジェクト。

戻り値

境界を含む GRect オブジェクト。これは、常に dest と同じオブジェクトになります。この GRect は正しい形式である必要があります。つまり、次の条件が true でなければなりません。 -dest.lextent <= dest.rextent and -dest.ascent <= dest.descent

説明

返された境界には、レイアウトの使用について、オブジェクトに関する詳細な記述があります。ただし、このオブジェクトのすべての子は含まれていません

注意事項

レンダリング境界 (get-own-bounds) とレイアウト境界 (get-own-layout-bounds) は、通常似ていますが、同じではありません。特に、レンダリング境界は非常に包括的ですが、レイアウト境界はそれぞれが整然と隣接するため、Shape を厳密に記述しなければならなりません。

オーバーライド

既定の実装では、get-own-bounds を呼び出すだけです。データを返すには、dest パラメータを使用する必要があります。


non-keyword-init-arg (メソッド)
public {GraphicShape.non-keyword-init-arg a:any}:void

InitRestArgParser.process-rest-args で非キーワード引数が検出されると、呼び出されます。

説明

Visual によるこのメソッドの実装では、最初にこのメソッドへの入力値をオブジェクトに関連するメタデータとして解釈を試みます。たとえば、オブジェクトに関連する EventHandlerDataBinding を認識してから、これらをアタッチするための適切な手順を実行することになります。
メタデータとして認識不可能な入力値は、Visual に追加される内容であると解釈され、Visual.add-from-init-args に渡されます。

オーバーライド

オブジェクトに関連付けられた追加のメタデータも受け入れるようにするには、このメソッドをオーバーライドします。実装では通常、解釈に失敗した入力値でスーパー実装が呼び出されるようにします。


note-graphic-detaching (メソッド)
public {GraphicShape.note-graphic-detaching}:void

GraphicShape に、その Graphic が階層から切り離されることを通知する場合に呼び出されます。

説明

このメソッドは、Layout.detach からのみ呼び出してください。Shape の独自のレイアウト システムを実装する場合は、ShapeLayout のクラスの説明を参照してください。


notify-option-children (メソッド)
public {GraphicShape.notify-option-children
item:OptionItem,
removed?:bool
}:void

このオブジェクトのオプションの子にオプションが変更されたことを通知します。

item: 追加または削除されたバインディング オプション。
removed?: item が削除された場合は true、それ以外の場合は false。

オーバーライド

既定の実装 OptionListInterface.notify-option-children では、何も行われません。サブクラスではこのメソッドをオーバーライドして、このオブジェクトの各オプションの子 c に対して {c.option-propagate-notify item removed? } を呼び出すようにする必要があります。


register-options (メソッド)
public {GraphicShape.register-options
p:{proc-type {OptionKey}:void}
}:void

このオブジェクトがバインドのモニタリングを必要とする非ローカル オプション キーを登録します。

p: 引数として OptionKey を使用して呼び出せるプロシージャ。

プログラミング注意事項

このメソッドは、オブジェクトがモニタしているオプション キーを確認する必要がある場合に任意のコード内で呼び出されます。このメソッドは、プロシージャ p をまったく呼び出さないかまたは何回か呼び出し、呼び出すたびに引数として OptionKey を渡す必要があります。このオブジェクトによりモニタリングされるオプション キーのセットは、p のすべての呼び出しで指定されたオプション キー セットの連結であると見なされます。p を複数回呼び出せるという能力を利用して、オプション親はモニタの対象となるオプション キーのリストを指定して p を一度呼び出し、次に、同じ引数 p を与えてオプションの子それぞれの register-options メソッドを呼び出し、このメソッドの目的を果たすことができます。この方法はシンプルですが、ほとんどの場合は、オプション親がその子における register-options 呼び出しの結果をキャッシュして、親の register-options メソッドが呼び出されたときにそのリストを提供する方がより効率的です。ローカル バインディング オプションへの変更通知は、それらのキーが登録されていない場合でも行われます。

オーバーライド

OptionListInterface.register-options の既定の実装は、このオブジェクトの変更ハンドラを持つ各非ローカル オプションで p を呼び出します。サブクラスは、{super.register-options p} を呼び出し、登録される必要がある追加のオプション キー上全てで、p を呼び出すように、このメソッドをオーバーライドする必要する必要があります。一般的に、これらの追加のオプション キーは、子供または子孫のオブジェクトが監視する必要がある非ローカル オプションに対応します。それは、このオブジェクトの子オブジェクト上で、register-options を呼び出すことによって決定されます。
注意 一般的に、このメソッドをオーバーライドする必要があるオブジェクトだけが、オプションの子を持つオブジェクトです。


request-draw (メソッド)
public {GraphicShape.request-draw
layout-context:LayoutContext = {self.get-layout-context}
}:void

描画する Visual に属するピクセルを確認します。

layout-context: このオブジェクトを含むグラフィック階層のサブツリーに対応する LayoutContext オブジェクト。このキーワード引数が提供されない場合、Visual.get-layout-context を呼び出して、適切な値を取得します。

注意事項

このメソッドは、View.request-draw-rect-in-root の呼び出しを必要な回数だけ発行し (通常はビジュアルの境界で Graphic.request-draw-rect への呼び出しを実行することにより)、再ペイントが必要なすべてのピクセルをカバーする責任があります。

プログラミング注意事項

このオブジェクトのピクセルの再ペイントが必要になる何らかの理由があったとき、このメソッドが呼び出されます。このような状況が発生するのは、オブジェクトが初めて表示されるとき、ビューから削除されるとき、移動やサイズ変更が行なわれるとき (この場合、移動やサイズ変更の前と後でこのメソッドを呼び出す必要があります) などがあります。


request-draw-self (メソッド)
public {GraphicShape.request-draw-self
layout-context:LayoutContext = {self.get-layout-context}
}:void

再描画する Shape に属するピクセルを要求します。

説明

このメソッドは、すべての子を再描画する必要がないという点を除けば、Shape.request-draw と同じです。


self-contains-point? (メソッド)
public {GraphicShape.self-contains-point? x:Distance, y:Distance}:bool

ポイントがこの Shape 内にあるかどうかを判定します。

x: 点の X 座標。
y: 点の Y 座標。

戻り値

この Shape が (xy) を含む場合は、true

説明

ポイントは、このオブジェクトのローカル座標系にあります。このメソッドはその子を考慮しません
GraphicShapeGraphic.contains-point? を呼び出すためにこのメソッドを実装します。このメソッドのオーバーライドの詳細については、Shape.self-contains-point? を参照してください。


self-intersects-polygon? (メソッド)
public {GraphicShape.self-intersects-polygon?}:bool

ポリゴンがこの Shape と交差するかどうかを判定します。

polygon: この形状のローカル座標空間にポリゴンを記述するポイント セットを含むオブジェクト。このポリゴンは必ず凸型であり、反時計回りのワインディング順に従います。

説明

このメソッドは、ポイントではなく領域を処理する点を除けば、Shape.self-contains-point? とよく似ています。主に領域ベースの選択をサポートするために使用されますが、直接呼び出すこともできます。

オーバーライド

Shape をサブクラス化する場合は、このメソッドをオーバーライドする必要があります。子を考慮する必要はありません。
通常は、このメソッドを実装して、領域が形状の境界内にあるかどうかだけでなく、領域が形状のレンダリングされたプリミティブと交差するかどうかを確認する必要があります。このメソッドは、必要なメトリックを使用して自在に実装できます。このメソッドの実装が Shape.self-contains-point? と調和しない場合は、このオブジェクトを選択すると予期しない結果になります。
選択機能を使用しない場合は、このメソッドを単純に false を返すように実装できます。


transformation-changed (メソッド)
public {GraphicShape.transformation-changed}:void

Shape.transformation が変更されたことの通知。

オーバーライド

重要:このメソッドのオーバーライド実装にスーパークラス実装の呼び出しを含めて、オブジェクトの新しい領域を無効にする必要があります。


transformation-changing (メソッド)
public {GraphicShape.transformation-changing}:void

Shape.transformation が変更されることの通知。

オーバーライド

重要:このメソッドのオーバーライド実装にスーパークラス実装の呼び出しを含めて、オブジェクトの現在の領域を無効にし、変換変更の通知が Shape 階層全体に適切に送信されるようにする必要があります。