|
HMDT - Special Issue / Sketch BP / 円弧ツールの基本部分の実装 |
- Modification -
円弧ツールの基本部分の実装
■ 円弧ツールの基本的なクラスインタフェースじゃ、円弧ツールの実装の話だ。ごりごりと、コードを書いていくぞ。 まず、円弧ツールのためのクラスの名前を決めよう。SKTArc にする。それに決めた。SKTArc は SKTGraphic を実装することにする。それが、ドローオブジェクトのルートクラスだからな。 次に、円弧ツールで、円弧を表現するために必要なインスタンス変数は何か、を考えてみよう。前の仕様の節で考察したように、円弧は領域の大きさと、どの象元に弧を描くかで、決定されるんだ。
この 2 つが決まれば、一意的に円弧を決定することができる。領域の大きさは、SKTGraphic で、NSRect 型の _bounds というインスタンス変数で管理されている。これを使おう。円弧の象元を表す変数は、円弧ツール独自のものなので、ここで定義しよう。int 型で、方向を表す定数をとるんだ。名前は _direction っていうことにする。
この変数がとる値は、前のドローオブジェクトの仕様の追加のところででてきた、方向を表す定数だ。この値ね。
で、インスタンス変数があれば、それに対するアクセッサが必要になる。名前は direction と setDirection にしよう。Cocoa の流儀に従って、get*** はつけないことにした。
ここまでのところをまとめると、SKTArc のインタフェースはこんな感じになる。
とりあえずは、こんなところ。 ■ 円弧ツールの基本的なメソッドの実装上で定義したものも含めて、基本的なメソッドの実装を考えるぜ! 基本的なメソッドで、実装する必要があるものは、次の通りだ。
init は初期化のメソッド。インスタンス変数を初期化するんだ。copyWithZone: では、追加された _direction をコピーする。dealloc は、今回は必要ない。オブジェクトをインスタンス変数に取らないからね。 ◆ initinit の実装は以下の通り。
親クラスを呼び出して、_direction を初期化する。そんだけ。 ◆ copyWithZone:続いて copyWithZone:。_direction のコピーが加わる。
_direction をコピーするのに、この後で説明する direction と setDirection: メソッドを使っているんだ。 ◆ direction, setDirection:そして _direction へのアクセッサ。direction と setDirection: だ。
簡単だね!これにて終了。 |
|
- ソースコードのダウンロード - HMDT - Download / Sketch BP |
|
Home | Link | Download | Back Number | Speciall Issue
|