C:\home\SVGCats_src\src\CadPrim.hpp
1|/************************************************************************** 2| 1. <<< SVG Cat sub header >>> 3|***************************************************************************/ 4| 5|#ifndef __CADPRIM_HPP 6|#define __CADPRIM_HPP 7| 8| 9|struct CadPrim_DrawParam; 10|struct CadPrim_SaveParam; 11| 12| 13|/*--------------------------------------------------------------*/ 14|/*2. <<< Interface Area -------------------------------------- >>> */ 15|/*--------------------------------------------------------------*/ 16| 17|#ifdef __cplusplus 18|extern "C" { 19|#endif 20| 21| 22|/************************************************************************** 23| 3. <<< [CadPrim] 図形の抽象 >>> 24|【補足】 25|・サブクラスは、Rect_Ex, Line_Ex, Line_Corner, Text, Text_Box があります。 26|***************************************************************************/ 27|class CadPrim { 28|public: 29| virtual ~CadPrim() {} 30| virtual void print( const char* title ) = 0; 31| virtual int GetID() = 0; 32| virtual void SetID( int id ) = 0; 33| virtual void OnChgedLinkID( int oldID, int newID ); 34| virtual int GetTypeID() = 0; 35| virtual char* GetTypeNameJp() = 0; 36| virtual char* GetTypeNameEn() = 0; 37| virtual void SetBInUndoBuf( bool b ) = 0; 38| virtual char* GetLinkURL() = 0; 39| virtual char* GetIdLabel() = 0; 40| 41| virtual void OutSVG( CadPrim_SaveParam* p ) = 0; 42| virtual void Draw( CDC* dc, CadPrim_DrawParam* p ) = 0; 43| virtual void DrawHandles( CDC* dc, CadPrim_DrawParam* p, COLORREF color, bool bDrawFrame ) = 0; 44| virtual void copy( CadPrim*, ListX* prims ) = 0; 45| virtual void copyStyle( CadPrim*, ListX* prims ) = 0; 46| virtual bool isEqual( CadPrim* ) = 0; 47| virtual CadPrim* GetNewCopy( ListX* prims ) = 0; 48| virtual int GetSerializedSize() = 0; 49| virtual void CopyToSerial( void* a ) = 0; 50| virtual void CopyFromSerial( void* a ) = 0; 51| 52| virtual int GetHitHandleNum( int x, int y, int zoom, int mode, int* dx, int* dy, int* diff, int* arrow ) = 0; 53| virtual void Move( int dx, int dy ) = 0; 54| virtual void MoveByHandle( int iHandle, int x, int y, bool bShift, bool bRotate ) = 0; 55| virtual void GetCenterOfHandle( int iHandle, int* x, int* y ) = 0; 56| virtual void SetHold( bool ) = 0; 57| virtual bool GetHold() = 0; 58| virtual bool IsHoldable() = 0; 59| virtual void SetSelected( bool ) = 0; 60| virtual bool GetSelected() = 0; 61| virtual bool IsMultiSelect( Rect* rect ) = 0; 62| virtual int GetForAlign( int iPos ) = 0; 63| virtual void SetForAlign( int iPos, int value ) = 0; 64| virtual int GetForFitSize( int iAttr ) = 0; 65| virtual void SetForFitSize( int iAttr, int value ) = 0; 66| virtual void OnCreated() = 0; 67| 68| virtual int GetNProp() = 0; 69| virtual int GetProp( int iProp, bool bJapanese, char* name, int name_size, char* value, 70| int value_size, const char* path, void** option ) = 0; 71| virtual void SetProp( int iProp, const char* value, const char* path ) = 0; 72| virtual bool IsNeedUnicode() = 0; 73| 74| virtual CadPrim_Link* GetLinkToHandle( int iHandle ); 75| virtual int GetNumOfLinkToHandle(); 76| virtual CadPrim* GetLinkToControler( int iHandle ); 77| virtual int GetLinkIDToControler( int iHandle ); 78| virtual int GetNumOfLinkToControler(); 79| virtual int GetLinkOnReadHandleNum( int x, int y, int diff ); 80| virtual int GetLinkableHandleNum( int x, int y ); 81| virtual void LinkToHandle( int iHandleOfThis, CadPrim* prim, int iHandleOfPrim ); 82| virtual void UnlinkToHandle( CadPrim* prim, int iHandleOfPrim, bool mutual =true ); 83| virtual void UnlinkAll(); 84| virtual void LinkToControler( int iHandle, CadPrim* ctrl ); 85| virtual void UnlinkToControler( int iHandle, CadPrim* ctrl ); 86| virtual void AdjustLinks( ListX* prims ); 87|}; 88| 89|/* プロパティの型、→ CadPrim::GetProp() */ 90|#define CadPrim_Text 0 91|#define CadPrim_Color 1 92|#define CadPrim_Font 2 93|#define CadPrim_Bool 3 94|#define CadPrim_Int 4 95|#define CadPrim_Select 5 96|#define CadPrim_Path 6 97|#define CadPrim_PathMust 7 98|#define CadPrim_ReadOnly 8 99|#define CadPrim_TextML 9 100| 101|/*********************************************************************** 102| 4. <<< [CadPrim_Link] 図形リンク >>> 103|************************************************************************/ 104|struct CadPrim_Link { 105| ListX_Elem inherit_ListX_Elem; 106| CadPrim* prim; /* Line_Ex or Line_Corner */ 107| int prim_id; 108| int iHandle; 109| int x, y; /* リンクしている頂点の座標 */ 110| 111| void print( const char* title ); 112|}; 113| 114|void CadPrim_Link_copy( CadPrim_Link* link1, CadPrim_Link* link2 ); 115| 116|/*********************************************************************** 117| 5. <<< [CadPrim_DrawParam] 図形描画時のキャンバス属性 >>> 118|************************************************************************/ 119|struct CadPrim_DrawParam { 120| int zoom; /* 拡大率(%) */ 121| int x0, y0; /* スクロール位置 */ 122| bool bWhiteToBGColor; /* Windowカラーを使うかどうか(未使用)*/ 123| bool bDrawHandle; 124| bool bPrint; 125| int clip_left, clip_top; 126| int clip_right, clip_bottom; 127| int iPage; /* キャンバスのページ番号 */ 128|}; 129| 130| 131|/*********************************************************************** 132| 6. <<< [CadPrim_SaveParam] 保存時のパラメータ >>> 133|************************************************************************/ 134|struct CadPrim_SaveParam { 135| 136| /* ファイル単位 */ 137| FILE* f; 138| char* path; 139| bool bLower; /* リンクのファイルパスを全て小文字にするかどうか */ 140| 141| /* ページ単位 */ 142| int iPage; /* キャンバスのページ番号 */ 143| 144| /* 図形単位 */ 145| int iTargetPage; /* ジャンプ先のページ番号(CadPrim::GetLinkURL) */ 146|}; 147| 148| 149|#ifdef __cplusplus 150|} 151|#endif 152| 153|/*--------------------------------------------------------------*/ 154|/*7. <<< Mapping Area ---------------------------------------- >>> */ 155|/*--------------------------------------------------------------*/ 156| 157| 158|/*********************************************************************** 159| 8. <<< [CadPrim::GetID] 図形の識別番号を返す >>> 160| 9. <<< [CadPrim::SetID] 図形の識別番号を設定する >>> 161|【補足】 162|・virtual int GetID() = 0; 163|・virtual void SetID( int id ) = 0; 164|・識別番号0は、該当する図形が無いことを示します。 165|************************************************************************/ 166| 167|/*********************************************************************** 168| 10. <<< [CadPrim::OnChgedLinkID] リンクしている図形の ID が変化したときの調整をする >>> 169|【補足】 170|・void OnChgedLinkID( int oldID, int newID ); 171|・CadPrim::AdjustLinks は、必要なら別途呼び出す必要があります。 172|************************************************************************/ 173| 174| 175|/*********************************************************************** 176| 11. <<< [CadPrim::GetTypeID] 型識別番号を返す >>> 177|【補足】 178|・virtual int GetTypeID() = 0; 179|・Line_Ex_TypeID = 1, Rect_Ex_TypeID = 2, Text_TypeID = 3, 180| Tex_Box_TypeID = 4, Line_Corner_TypeID = 5 のいずれかを返します。 181| Matome_TypeID = 6, SVGCat_Ink_TypeID = 7 182|************************************************************************/ 183| 184| 185| 186|/*********************************************************************** 187| 12. <<< [CadPrim::GetLinkURL] リンク先の URL を返す >>> 188|************************************************************************/ 189| 190| 191|/*********************************************************************** 192| 13. <<< [CadPrim::GetIdLabel] スクリプトや URL で指定する id を返す >>> 193|************************************************************************/ 194| 195| 196| 197| 198|/*********************************************************************** 199| 14. <<< [CadPrim::OutSVG] SVG ファイルの一部を出力する >>> 200|【補足】 201|・virtual void OutSVG( CadPrim_SaveParam* p ) = 0; 202|************************************************************************/ 203| 204| 205| 206|/*********************************************************************** 207| 15. <<< [CadPrim::Draw] 図形を描画する >>> 208|【引数】 209| ・CDC* dc; デバイスコンテキスト 210| ・CadPrim_DrawParam* p; 描画パラメータ 211|【補足】 212|・virtual void Draw( CDC* dc, CadPrim_DrawParam* p ) = 0; 213|************************************************************************/ 214| 215|/*********************************************************************** 216| 16. <<< [CadPrim::DrawHandles] 全ハンドルを描画する >>> 217|【引数】 218| ・CDC* dc; デバイスコンテキスト 219| ・CadPrim_DrawParam* p ; 描画パラメータ(拡大率など) 220| ・int color; ハンドルの色 221|【補足】 222|・virtual void DrawHandles( CDC* dc, CadPrim_DrawParam* p, COLORREF color, bool bDrawFrame ) = 0; 223|************************************************************************/ 224| 225|/*********************************************************************** 226| 17. <<< [CadPrim::copy] コピーする >>> 227|【引数】 228| ・CadPrim* a; コピー元 229| ・ListX* prims; アプリケーションデータ 230|【補足】 231|・virtual void copy( CadPrim*, ListX* prims ) = 0; 232|・リスト要素もすべてコピーします。 233|・ポインタは、そのままコピーしないで、CadPrim::GetID()、Undo_Uty_getPrimPtr 234| で、現在のアプリケーションデータにあるアドレスを代入します。 235|************************************************************************/ 236| 237| 238|/*********************************************************************** 239| 18. <<< [CadPrim::copyStyle] スタイルをコピーする >>> 240|【引数】 241| ・CadPrim* a; コピー元 242| ・ListX* prims; アプリケーションデータ 243|【補足】 244|・virtual void copyStyle( CadPrim*, ListX* prims ) = 0; 245|************************************************************************/ 246| 247| 248|/*********************************************************************** 249| 19. <<< [CadPrim::isEqual] 同じかどうか判定する >>> 250|【引数】 251| ・CadPrim* a; 比較対象 252|【補足】 253|・virtual bool isEqual( CadPrim* ) = 0; 254|・アプリケーションデータにある中で、CadPrim::copy で取得したコピーが 255| どのオブジェクトと対応するかを特定するために使われるので、 256| リンク関係まで厳密でなくてもかまいません。 257|************************************************************************/ 258| 259|/*********************************************************************** 260| 20. <<< [CadPrim::GetNewCopy] 多態コピーコンストラクタ >>> 261|【引数】 262| ・ListX* prims; アプリケーションデータ 263|【補足】 264|・virtual CadPrim* GetNewCopy( ListX* prims ) = 0; 265|・C++言語のコピーコンストラクタでは、多態による生成ができないので、この 266| 関数を使います。 267|************************************************************************/ 268| 269| 270|/*********************************************************************** 271| 21. <<< [CadPrim::GetSerializedSize] シリアライズされたデータサイズを返す >>> 272|【補足】 273|・virtual int GetSerializedSize() = 0; 274|************************************************************************/ 275| 276| 277|/*********************************************************************** 278| 22. <<< [CadPrim::CopyToSerial] シリアライズする >>> 279|【補足】 280|・virtual void CopyToSerial( void* a ) = 0; 281|************************************************************************/ 282| 283| 284|/*********************************************************************** 285| 23. <<< [CadPrim::CopyFromSerial] シリアライズされたデータを復元する >>> 286|【補足】 287|・virtual void CopyFromSerial( void* a ) = 0; 288|***********************************************************************/ 289| 290| 291|/*********************************************************************** 292| 24. <<< [CadPrim::GetHitHandleNum] 指定した座標にヒットしたハンドルの番号を返す >>> 293|【引数】 294| ・int x,y; 座標 295| ・int zoom; 拡大率(%) 296| ・int mode; CadPrim_ResizeMode or CadPrim_RotateMode 297| ・int* dx, dy; (出力)マウスの位置を原点とした移動用ハンドルの位置 298| ・int* diff; (出力)ヒット距離(小さいほどマウスとハンドルのヒット度が高い) 299| ・int* arrow; (出力)マウスカーソルの形状 300| ・int 返り値; ハンドル番号(1以上、-1=移動用、0=ヒットしない) 301|【補足】 302|・virtual int GetHitHandleNum( int x, int y, int zoom, int mode, int* dx, int* dy, int* diff, int* arrow ) = 0; 303|・ハンドルは、マウスで図形を変形するときに使う印です。 304|・*arrow には、CadPrim_VerticalArrow などが格納されます。 305|************************************************************************/ 306| 307|/*********************************************************************** 308| 25. <<< [CadPrim::Move] 図形の位置を変える >>> 309|【引数】 310| ・int dx,dy; 移動量(差分) 311|【補足】 312|・virtual void Move( int dx, int dy ) = 0; 313|・カーソルキーによる移動、複数選択時の移動のときに呼ばれます。 314|************************************************************************/ 315| 316| 317|/*********************************************************************** 318| 26. <<< [CadPrim::MoveByHandle] ハンドルを動かしてパラメータを変える >>> 319|【引数】 320| ・int iHandle; ハンドル番号(1〜) 321| ・int x,y; 座標 322| ・bool bShift; シフトモード(別の変形のしかたをする) 323| ・bool bRotate; 回転モード 324|【補足】 325|・virtual void MoveByHandle( int iHandle, int x, int y, bool bShift, bool bRotate ) = 0; 326|・ハンドルの移動、マウスによる図形の移動のときに呼ばれます。 327|・iHandle には、CadPrim::GetHitHandleNum または、CadPrim::GetMoveHandle 328| で取得した値を指定します。 329|・x, y に与える値は、マウスの位置に、GetHitHandleNum で取得した dx, dy 330| を足した値を指定してください。 331|************************************************************************/ 332| 333|/*********************************************************************** 334| 27. <<< [CadPrim::IsMultiSelect] ドラッグ領域による複数選択にかかったかどうか >>> 335|【引数】 336| ・Rect* rect; ドラッグ範囲(クリックしたときは、幅と高さが1で来る) 337|【補足】 338|・virtual bool IsMultiSelect( Rect* rect ) = 0; 339|************************************************************************/ 340| 341| 342|/*********************************************************************** 343| 28. <<< [CadPrim::SetHold] 選択状態にする(ハンドルがつくもの) >>> 344| 29. <<< [CadPrim::GetHold] 選択状態かどうかを返す >>> 345| 30. <<< [CadPrim::IsHoldable] 選択状態にできるかどうかを返す >>> 346| 31. <<< [CadPrim::SetSelected] 選択状態にする(リンクも含む) >>> 347| 32. <<< [CadPrim::GetSelected] 選択状態かどうかを返す >>> 348|【補足】 349|・virtual void SetHold( bool ) = 0; 350|・virtual bool GetHold() = 0; 351|・virtual bool IsHoldable() = 0; 352|・virtual void SetSelected( bool ) = 0; 353|・virtual bool GetSelected() = 0; 354|・ユーザが選択できるものが Hold, その Hold によって一緒に操作対象になるものも 355| 含んだものが Selected。 たとえば、ラインの両端が Text_Box にリンクされていて、 356| 両方の Text_Box を Hold したら、Text_Box もラインも Selected に含まれる。 357|・Hold と Selected の関係の詳細は、CChildView::SetMultiSelect() を参照。 358|************************************************************************/ 359| 360|/*********************************************************************** 361| 33. <<< [CadPrim::GetForAlign] 整列用のパラメータを取得する >>> 362|【引数】 363| ・int iPos; CadPrim_AlignLeft など 364| ・int 帰り値; iPos に対応した値 365|【補足】 366|・virtual int GetForAlign( int iPos ) = 0; 367|************************************************************************/ 368| 369| 370|/*********************************************************************** 371| 34. <<< [CadPrim::SetForAlign] 整列用のパラメータから属性を設定する >>> 372|【引数】 373| ・int iPos; CadPrim_AlignLeft など 374| ・int value; iPos に対応した値 375|【補足】 376|・virtual void SetForAlign( int iPos, int value ) = 0; 377|************************************************************************/ 378| 379| 380|/*********************************************************************** 381| 35. <<< [CadPrim::GetForFitSize] サイズ調節のためのパラメータを取得する >>> 382|【引数】 383| ・int iPos; 帰り値が幅か高さのどちらか。CadPrim_Horizontal など 384| ・int 帰り値; iPos に対応した値 385|【補足】 386|・virtual int GetForFitSize( int iAttr ) = 0; 387|************************************************************************/ 388| 389| 390|/*********************************************************************** 391| 36. <<< [CadPrim::SetForFitSize] サイズ調節によって属性を設定する >>> 392|【引数】 393| ・int iPos; value が幅か高さのどちらか。CadPrim_Horizontal など 394| ・int value; iPos に対応した値 395|【補足】 396|・virtual void SetForFitSize( int iAttr, int value ) = 0; 397|************************************************************************/ 398| 399| 400|/*********************************************************************** 401| 37. <<< [CadPrim::OnCreated] 生成した直後の処理、クリックのみによる最小の回避 >>> 402|【補足】 403|・virtual void OnCreated() = 0; 404|************************************************************************/ 405| 406| 407|/*********************************************************************** 408| 38. <<< [CadPrim::GetNProp] プロパティの数を返す >>> 409|【補足】 410|・virtual int GetNProp() = 0; 411|************************************************************************/ 412| 413| 414|/*********************************************************************** 415| 39. <<< [CadPrim::GetProp] プロパティ番号からプロパティの名前と値を取得する >>> 416|【引数】 417| ・int iProp; プロパティ番号(0〜) 418| ・char* name; (出力)プロパティの名前 419| ・int name_size; name の領域サイズ 420| ・char* value; (出力)プロパティの値、文字列型 421| ・int value_size; value の領域サイズ 422| ・char* path; SVGファイルの絶対パス 423| ・void** option; (出力)値の型の追加情報の入ったアドレス(→補足) 424| ・int 返り値; 値の型、入力方法(CadPrim_Text, CadPrim_Color) 425|【補足】 426|・virtual int GetProp( int iProp, bool bJapanese, char* name, int name_size, char* value, 427| int value_size, const char* path, void** option ) = 0; 428|・カラーの値は、StrX_getColorValue で取得します。 429|・値の型と、option の意味は次のとおり 430| ・CadPrim_Text=テキスト入力, option=NULL 431| ・CadPrim_Color=カラーダイアログ入力, option=NULL 432| ・CadPrim_Font=フォントダイアログ入力, option=NULL 433| ・CadPrim_Bool=トグル, option=NULL 434| ・CadPrim_Int=整数(上下ボタン付き), option=値の範囲、int[2]型 435| ・CadPrim_Select=選択(ドロップダウン), option=値の集合、ListX::StrX_ListElem型 436| ・CadPrim_Path=ファイルパス・ダイアログ, option=filter文字列(CFileDialog)char*型 437| ・CadPrim_ReadOnly=入力不可, option=NULL 438|************************************************************************/ 439| 440| 441|/*********************************************************************** 442| 40. <<< [CadPrim::SetProp] プロパティ番号からプロパティの値を設定する >>> 443|【引数】 444| ・int iProp; プロパティ番号(0〜) 445| ・char* value; プロパティの値(数値のプロパティでも "24" のように指定します) 446| ・char* path; SVGファイルパス 447|【補足】 448|・virtual void SetProp( int iProp, const char* value, const char* path ) = 0; 449|・カラーの値は、StrX_getColorStr で取得した文字列を指定します。 450|************************************************************************/ 451| 452| 453|/*********************************************************************** 454| 41. <<< [CadPrim::IsNeedUnicode] UNICODE で保存する必要があるかどうかを返す >>> 455|【補足】 456|・virtual bool IsNeedUnicode(); 457|・Adobe 社製 SVGビューアは、日本語のテキストを UNICODE にする必要があります。 458|************************************************************************/ 459| 460|/*********************************************************************** 461| 42. <<< [CadPrim::GetLinkToHandle] リンクしている図形との関係情報を返す >>> 462|【補足】 463|・virtual CadPrim_Link* GetLinkToHandle( int iHandle ); 464|・無効なリンク番号が指定されたときは、NULL を返します。 465|・iHandle は、1から始まります。 466|・リンクを追加または削除すると、iHandle とリンクしている図形との関係が 467| ずれることがあるので注意してください。 468|************************************************************************/ 469| 470| 471|/*********************************************************************** 472| 43. <<< [CadPrim::GetNumOfLinkToHandle] リンクしている図形の最大番号+1を返す >>> 473|【補足】 474|・virtual int GetNumOfLinkToHandle(); 475|・たとえば3を返したとき、1〜3のリンク番号(iHandle)の中に有効なリンクが 476| ある可能性を示します。途中で無効なリンクがある可能性もあります。 477|************************************************************************/ 478| 479| 480|/*********************************************************************** 481| 44. <<< [CadPrim::GetLinkToControler] リンクされている図形を返す >>> 482| 45. <<< [CadPrim::GetLinkIDToControler] リンクされている図形の識別番号を返す >>> 483|【補足】 484|・virtual CadPrim* GetLinkToControler( int iHandle ); 485|・無効なリンク番号が指定されたときは、NULL を返します。 486|・iHandle は、1から始まります。 487|・リンクを追加または削除すると、iHandle とリンクしている図形との関係が 488| ずれることがあるので注意してください。 489|************************************************************************/ 490| 491| 492|/*********************************************************************** 493| 46. <<< [CadPrim::GetNumOfLinkToControler] リンクされている図形の最大番号を返す >>> 494|【補足】 495|・virtual int GetNumOfLinkToControler(); 496|・たとえば3を返したとき、1〜3のリンク番号(iHandle)の中に有効なリンクが 497| ある可能性を示します。途中で無効なリンクがある可能性もあります。 498|************************************************************************/ 499| 500| 501| 502|/*********************************************************************** 503| 47. <<< [CadPrim::GetLinkOnReadHandleNum] 開くときにリンクする操作ハンドルを得る >>> 504|【引数】 505| ・int x,y; 相手ハンドルの位置 506| ・int diff; 誤差許容範囲 507| ・int 帰り値; リンクする this の操作ハンドル番号(0=リンクする操作ハンドルはない) 508|【補足】 509|・virtual int GetLinkOnReadHandleNum( int x, int y, int diff ); 510|・図形が持っているリンクできるすべてのハンドルについて、本関数で評価して 511| ください。 512|************************************************************************/ 513| 514|/*********************************************************************** 515| 48. <<< [CadPrim::GetLinkableHandleNum] 相手のハンドルがリンクできる自分の操作ハンドル番号を返す >>> 516|【引数】 517| ・int x,y; 相手ハンドルの位置 518| ・int 帰り値; リンクできる this の操作ハンドル番号(0=リンクできる操作ハンドルはない) 519|【補足】 520|・virtual int GetLinkableHandleNum( int x, int y ); 521|・GetLinkOnReadHandleNum より広い空間でリンク可能と判定します。 522|・図形が持っているリンクできるすべてのハンドルについて、本関数で評価して 523| ください。 524|************************************************************************/ 525| 526|/*********************************************************************** 527| 49. <<< [CadPrim::LinkToHandle] 操作対象の頂点と双方向リンクし、頂点座標を調節する >>> 528|【引数】 529| ・CadPrim* prim; リンク相手(Line_Ex または Line_Corner) 530| ・int iHandleOfPrim; prim の頂点と一致するハンドルの番号 531|【補足】 532|・virtual void LinkToHandle( int iHandleOfThis, CadPrim* prim, int iHandleOfPrim ); 533|・iHandleOfPrim の座標から、this のどの部分とリンクするか決定します。 534|************************************************************************/ 535| 536|/*********************************************************************** 537| 50. <<< [CadPrim::UnlinkToHandle] 操作対象から外す >>> 538|【引数】 539| ・CadPrim* prim; リンク相手(Line_Ex または Line_Corner) 540| ・int iHandleOfPrim; prim の頂点と一致するハンドルの番号 541| ・bool mutual; 双方のリンクとも外すかどうか(FALSE=片方向のみ) 542|【補足】 543|・virtual void UnlinkToHandle( CadPrim* prim, int iHandleOfPrim, bool mutual =TRUE ); 544|・prim と関連していても、iHandleOfPrim とリンクしていなかったら、 545| 何もしません。 546|************************************************************************/ 547| 548|/*********************************************************************** 549| 51. <<< [CadPrim::UnlinkAll] リンクをすべて外す >>> 550|【補足】 551|・virtual void UnlinkAll(); 552|************************************************************************/ 553| 554|/*********************************************************************** 555| 52. <<< [CadPrim::LinkToControler] 頂点を操作する図形とリンクする >>> 556|【引数】 557| ・int iHandle; 操作される this の頂点と一致するハンドルの番号 558| ・CadPrim* ctrl; 頂点を操作する図形 559|【補足】 560|・virtual void LinkToControler( int iHandle, CadPrim* ctrl ); 561|・リンク相手の LinkToHandle から呼ばれます。本関数を単独で呼び出すと、 562| 双方向リンクの関係が壊れるので、呼び出さないでください。 563|************************************************************************/ 564| 565|/*********************************************************************** 566| 53. <<< [CadPrim::UnlinkToControler] 頂点を操作する図形とのリンクを外す >>> 567|【引数】 568| ・int iHandle; 操作される this の頂点と一致するハンドルの番号 569| ・CadPrim* ctrl; 頂点を操作する図形 570|【補足】 571|・virtual void UnlinkToControler( int iHandle, CadPrim* ctrl ); 572|・リンク相手の UnlinkToHandle から呼ばれます。本関数を単独で呼び出すと、 573| 双方向リンクの関係が壊れるので、呼び出さないでください。 574|************************************************************************/ 575| 576|/*********************************************************************** 577| 54. <<< [CadPrim::AdjustLinks] リンク図形へのポインタを リンクID と整合を取る >>> 578|【補足】 579|・virtual void AdjustLinks( ListX* prims ); 580|************************************************************************/ 581| 582|#endif /* __CADPRIM_H */ 583| 584|