Line.hpp

C:\home\SVGCats_src\src\Line.hpp

[目次 | 型・クラス・構造体 | マクロ]

目次

型・クラス・構造体一覧

マクロ一覧


   1|/***********************************************************************
   2|  1. <<< 矩形 C++部 (Line) >>> 
   3|************************************************************************/
   4|
   5|#ifndef __LINE_HPP
   6|#define __LINE_HPP
   7|
   8| 
   9|/*-----------------------------------------------------------------*/
  10|/* 2. <<< Interface Area ---------------------------------------- >>> */ 
  11|/*-----------------------------------------------------------------*/
  12| 
  13|/***********************************************************************
  14|  3. <<< [Line_Ex] ライン・詳細(ディスプレイ表示用) >>> 
  15|************************************************************************/
  16|class Line_Ex : public CadPrim {
  17|public:
  18|  int   m_id;
  19|  bool  m_bInUndoBuf;
  20|  bool  m_bHold;
  21|  bool  m_bSelected;
  22|
  23|  Line  m_Line;
  24|  int   m_Width;
  25|  int   m_Color;
  26|  bool  m_bDash;
  27|
  28|  int   m_Arrow1;  /* 参照:Line_Plus_drawArrow の type 引数 */
  29|  int   m_Arrow2;
  30|  Line*  m_ArrowsInReading;  /* 矢印の位置、読み込み時のみ有効, 1==m_ArrowXは決定 */
  31|
  32|  CadPrim*  m_Controler[2];
  33|  int       m_Controler_id[2];  /* 0=非リンク、-1=読み込み時、リンク予告 */
  34|  CadPrim_Link  m_Link[2];  /* [0]=(x1,y1)点, [1]=(x2,y2)点 */
  35|                            /* CadPrim_Link::prim == NULL:リンクしていない */
  36|
  37|  Line_Ex();
  38|  ~Line_Ex();
  39|  void  print( const char* title );
  40|  int   GetID();
  41|  void  SetID( int id );
  42|  void  OnChgedLinkID( int oldID, int newID );
  43|  int   GetTypeID();
  44|  char*  GetTypeNameJp();
  45|  char*  GetTypeNameEn();
  46|  void   SetBInUndoBuf( bool b );
  47|  char*  GetLinkURL();
  48|  char*  GetIdLabel();
  49|
  50|  void  OutSVG( CadPrim_SaveParam* p );
  51|  void  Draw( CDC*, CadPrim_DrawParam* p );
  52|  void  DrawHandles( CDC*, CadPrim_DrawParam* p, COLORREF color, bool bDrawFrame );
  53|  void  GetArrowParamType1( int i, Line* leftWing, Line* rightWing );
  54|  void  GetArrowParamType2( int i, int* x, int* y, int* r );
  55|  void  GetArrowParamType3( int i, POINT* xy );
  56|  void  GetArrowParamType4( int i, POINT* xy );
  57|  void  ConvertByZoom( CadPrim_DrawParam* p, POINT* xy, int nXY );
  58|
  59|  int   GetHitHandleNum( int x, int y, int zoom, int mode, int* dx, int* dy, int* diff, int* arrow );
  60|  void  copy( CadPrim*, ListX* prims );
  61|  void  copyStyle( CadPrim*, ListX* prims );
  62|  bool  isEqual( CadPrim* );
  63|  CadPrim*  GetNewCopy( ListX* prims );
  64|  int   GetSerializedSize();
  65|  void  CopyToSerial( void* a );
  66|  void  CopyFromSerial( void* a );
  67|
  68|  void  Move( int dx, int dy );
  69|  void  MoveByHandle( int iHandle, int x, int y, bool bShift, bool bRotate );
  70|  void  GetCenterOfHandle( int iHandle, int* x, int* y );
  71|  void  SetHold( bool );
  72|  bool  GetHold();
  73|  bool  IsHoldable();
  74|  void  SetSelected( bool );
  75|  bool  GetSelected();
  76|  bool  IsMultiSelect( Rect* rect );
  77|  int   GetForAlign( int iPos );
  78|  void  SetForAlign( int iPos, int value );
  79|  int   GetForFitSize( int iAttr );
  80|  void  SetForFitSize( int iAttr, int value );
  81|  void  OnCreated();
  82|
  83|  int   GetNProp();
  84|  int   GetProp( int iProp, bool bJapanese, char* name, int name_size, char* value, int value_size,
  85|    const char* path, void** option );
  86|  void  SetProp( int iProp, const char* value, const char* path );
  87|  bool  IsNeedUnicode();
  88|
  89|  CadPrim*  GetLinkToControler( int iHandle );
  90|  int       GetLinkIDToControler( int iHandle );
  91|  int       GetNumOfLinkToControler();
  92|  int   GetLinkableHandleNum( int x, int y );
  93|  void  LinkToHandle( int iHandleOfThis, CadPrim* prim, int iHandleOfPrim );
  94|  void  UnlinkToHandle( CadPrim* prim, int iHandleOfPrim, bool mutual =true );
  95|  void  UnlinkAll();
  96|  void  LinkToControler( int iHandle, CadPrim* ctrl );
  97|  void  UnlinkToControler( int iHandle, CadPrim* ctrl );
  98|  void  AdjustLinks( ListX* prims );
  99|};
 100|
 101|#define  Line_Ex_TypeID  1
 102|
 103|
 104| 
 105|/***********************************************************************
 106|  4. <<< [Line_Corner] 直角ライン >>> 
 107|【補足】
 108|・m_CornerX, m_CornerY のハンドルによって、Z 型に折れ曲がる位置を決定
 109|  します。
 110|************************************************************************/
 111|class Line_Corner : public CadPrim {
 112|public:
 113|  int   m_id;
 114|  bool  m_bInUndoBuf;
 115|  bool  m_bHold;
 116|  bool  m_bSelected;
 117|
 118|  Line  m_Line;
 119|  int   m_CornerX, m_CornerY;  /* 折れ曲がる位置を決定するハンドル */
 120|  int   m_Dir;  /* 下記 */
 121|  bool  m_SlideCorner;    /* m_CornerX, m_CornerY をドラッグでずらす */
 122|  int   m_Width;
 123|  int   m_Color;
 124|  bool  m_bDash;
 125|
 126|  int   m_Arrow1;  /* 参照:Line_Plus_drawArrow の type 引数 */
 127|  int   m_Arrow2;
 128|  Line*  m_ArrowsInReading;  /* 矢印の位置、読み込み時のみ有効 */
 129|
 130|  CadPrim*  m_Controler[2];
 131|  int       m_Controler_id[2];
 132|  CadPrim_Link  m_Link[2];  /* [0]=(x1,y1)点, [1]=(x2,y2)点 */
 133|                            /* CadPrim_Link::prim == NULL:リンクしていない */
 134|
 135|  int  m_LinesX[6], m_LinesY[6];  /* 折れ線座標 */
 136|  int  m_LinesN;  /* 頂点数 */
 137|  bool m_bArrow1IsLast;
 138|
 139|  Line_Corner();
 140|  ~Line_Corner();
 141|  void  print( const char* title );
 142|  int   GetID();
 143|  void  SetID( int id );
 144|  void  OnChgedLinkID( int oldID, int newID );
 145|  int   GetTypeID();
 146|  char*  GetTypeNameJp();
 147|  char*  GetTypeNameEn();
 148|  void   SetBInUndoBuf( bool b );
 149|  char*  GetLinkURL();
 150|  char*  GetIdLabel();
 151|
 152|  void  OutSVG( CadPrim_SaveParam* p );
 153|  void  Draw( CDC*, CadPrim_DrawParam* p );
 154|  void  DrawHandles( CDC*, CadPrim_DrawParam* p, COLORREF color, bool bDrawFrame );
 155|  void  GetArrowParamType1( int i, Line* leftWing, Line* rightWing );
 156|  void  GetArrowParamType2( int i, int* x, int* y, int* r );
 157|  void  GetArrowParamType3( int i, POINT* xy );
 158|  void  GetArrowParamType4( int i, POINT* xy );
 159|  int   GetArrowPoint( int i, int* x, int* y );
 160|  void  ConvertByZoom( CadPrim_DrawParam* p, POINT* xy, int nXY );
 161|
 162|  int   GetHitHandleNum( int x, int y, int zoom, int mode, int* dx, int* dy, int* diff, int* arrow );
 163|  void  copy( CadPrim*, ListX* prims );
 164|  void  copyStyle( CadPrim*, ListX* prims );
 165|  bool  isEqual( CadPrim* );
 166|  CadPrim*  GetNewCopy( ListX* prims );
 167|  int   GetSerializedSize();
 168|  void  CopyToSerial( void* a );
 169|  void  CopyFromSerial( void* a );
 170|  void  OnCreated();
 171|
 172|  void  Move( int dx, int dy );
 173|  void  MoveByHandle( int iHandle, int x, int y, bool bShift, bool bRotate );
 174|  void  GetCenterOfHandle( int iHandle, int* x, int* y );
 175|  bool  IsNeedUnicode();
 176|  void  SetHold( bool );
 177|  bool  GetHold();
 178|  bool  IsHoldable();
 179|  void  SetSelected( bool );
 180|  bool  GetSelected();
 181|  bool  IsMultiSelect( Rect* rect );
 182|  int   GetForAlign( int iPos );
 183|  void  SetForAlign( int iPos, int value );
 184|  int   GetForFitSize( int iAttr );
 185|  void  SetForFitSize( int iAttr, int value );
 186|
 187|  int   GetNProp();
 188|  int   GetProp( int iProp, bool bJapanese, char* name, int name_size, char* value, int value_size,
 189|    const char* path, void** option );
 190|  void  SetProp( int iProp, const char* value, const char* path );
 191|
 192|  CadPrim*  GetLinkToControler( int iHandle );
 193|  int       GetLinkIDToControler( int iHandle );
 194|  int       GetNumOfLinkToControler();
 195|  int   GetLinkableHandleNum( int x, int y );
 196|  void  LinkToHandle( int iHandleOfThis, CadPrim* prim, int iHandleOfPrim );
 197|  void  UnlinkToHandle( CadPrim* prim, int iHandleOfPrim, bool mutual =true );
 198|  void  UnlinkAll();
 199|  void  LinkToControler( int iHandle, CadPrim* ctrl );
 200|  void  UnlinkToControler( int iHandle, CadPrim* ctrl );
 201|  void  AdjustLinks( ListX* prims );
 202|
 203|  void  GetLines();
 204|};
 205|
 206|#define  Line_Corner_TypeID  5
 207|
 208|/* 5. <<<[Line_Corner::m_Dir]>>> */
 209|#define  Line_DirZ  0  /* 横縦横 */
 210|#define  Line_DirN  1  /* 縦横縦 */
 211|
 212| 
 213|/***********************************************************************
 214|  6. <<< [Line_Plus] ライン描画補助 >>> 
 215|************************************************************************/
 216|void  Line_Plus_getArrowParamType1( int x1, int y1, int x2, int y2,
 217|  int length, Line* leftWing, Line* rightWing );
 218|void  Line_Plus_getArrowParamType3( int x1, int y1, int x2, int y2,
 219|  int length, POINT* xy );
 220|void  Line_Plus_getArrowParamType4( int x1, int y1, int x2, int y2,
 221|  int length, POINT* xy );
 222|
 223|
 224| 
 225|/*-----------------------------------------------------------------*/
 226|/* 7. <<< Mapping Area ------------------------------------------ >>> */ 
 227|/*-----------------------------------------------------------------*/
 228|
 229| 
 230|#endif 
 231| 
 232|