AcGiLineAttributes.h 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. //
  2. //////////////////////////////////////////////////////////////////////////////
  3. //
  4. // Copyright 2015 Autodesk, Inc. All rights reserved.
  5. //
  6. // Use of this software is subject to the terms of the Autodesk license
  7. // agreement provided at the time of installation or download, or which
  8. // otherwise accompanies this software in either electronic or hard copy form.
  9. //
  10. //////////////////////////////////////////////////////////////////////////////
  11. #ifndef __AcGiLineAttributes_H_Defined__
  12. #define __AcGiLineAttributes_H_Defined__
  13. #include "acdb.h"
  14. #include "AcGiLineAttrUtils.h"
  15. typedef enum {
  16. // Heidi Predefined linetypes
  17. kLineTypeSolid = 0x00,
  18. kDashed = 0x01,
  19. kDotted = 0x02,
  20. kDash_Dot = 0x03,
  21. kShort_Dash = 0x04,
  22. kMedium_Dash = 0x05,
  23. kLong_Dash = 0x06,
  24. kShort_Dash_X2 = 0x07,
  25. kMedium_Dash_X2 = 0x08,
  26. kLong_Dash_X2 = 0x09,
  27. kMedium_Long_Dash = 0x0A,
  28. kMedium_Dash_Short_Dash_Short_Dash = 0x0B,
  29. kLong_Dash_Short_Dash = 0x0C,
  30. kLong_Dash_Dot_Dot = 0x0D,
  31. kLong_Dash_Dot = 0x0E,
  32. kMedium_Dash_Dot_Short_Dash_Dot = 0x0F,
  33. kSparse_Dot = 0x10,
  34. kISO_Dash = 0x11,
  35. kISO_Dash_Space = 0x12,
  36. kISO_Long_Dash_Dot = 0x13,
  37. kISO_Long_Dash_Double_Dot = 0x14,
  38. kISO_Long_Dash_Triple_Dot = 0x15,
  39. kISO_Dot = 0x16,
  40. kISO_Long_Dash_Short_Dash = 0x17,
  41. kISO_Long_Dash_Double_Short_Dash = 0x18,
  42. kISO_Dash_Dot = 0x19,
  43. kISO_Double_Dash_Dot = 0x1A,
  44. kISO_Dash_Double_Dot = 0x1B,
  45. kISO_Double_Dash_Double_Dot = 0x1C,
  46. kISO_Dash_Triple_Dot = 0x1D,
  47. kISO_Double_Dash_Triple_Dot = 0x1E,
  48. kLineTypeNone = 0x1F,
  49. kSolid_6_Pixels_Blank_6_Pixels = 0x20,
  50. kDense_Dot = 0x21
  51. }AcGiLineType;
  52. typedef enum {
  53. kMiterJoin = 0x00,
  54. kBevelJoin = 0x01,
  55. kRoundJoin = 0x02,
  56. kDiamondJoin = 0x03,
  57. } AcGiLineJoinStyle;
  58. typedef enum {
  59. kButtCap = 0x00,
  60. kSquareCap = 0x01,
  61. kRoundCap = 0x02,
  62. kDiamondCap = 0x03,
  63. } AcGiLineEndStyle;
  64. typedef enum {
  65. kFillStyleSolid = 0x00,
  66. kCheckerboard = 0x01,
  67. kCrosshatch = 0x02,
  68. kDiamonds = 0x03,
  69. kHorizontal_Bars = 0x04,
  70. kSlant_Left = 0x05,
  71. kSlant_Right = 0x06,
  72. kSquare_Dots = 0x07,
  73. kVertical_Bars = 0x08,
  74. kUser_Defined = 0x09
  75. }AcGiLineFillStyle;
  76. class ADESK_NO_VTABLE AcGiLineAttributes
  77. {
  78. public:
  79. // ctor/dtor/init
  80. virtual ~AcGiLineAttributes() { }
  81. // access methods
  82. virtual AcDb::LineWeight getLineweight () const = 0;
  83. virtual void setLineweight (AcDb::LineWeight lweight) = 0;
  84. virtual AcGiLineJoinStyle getJoinstyle () const = 0;
  85. virtual void setJoinstyle (AcGiLineJoinStyle joinstyle) = 0;
  86. virtual AcGiLineEndStyle getEndstyle () const = 0;
  87. virtual void setEndstyle (AcGiLineEndStyle endstyle) = 0;
  88. virtual AcGiLineType getLinetype () const = 0;
  89. virtual void setLinetype (AcGiLineType linetype) = 0;
  90. virtual AcGiLineFillStyle getFillstyle () const = 0;
  91. virtual void setFillstyle (AcGiLineFillStyle fillstyle) = 0;
  92. // Flags
  93. virtual bool isLinetypeAdaptive () const = 0;
  94. virtual void setLinetypeAdaptive (bool isAdaptive) = 0;
  95. virtual bool isLineWeightByLayer () const = 0;
  96. virtual void setLineWeightByLayer (bool isLineweightByLayer) = 0;
  97. virtual bool hasCustomLineweight () const = 0;
  98. virtual void setCustomLineweight (bool isCustomLineweight) = 0;
  99. virtual bool isLineweightDefault () const = 0;
  100. virtual void setLineweightDefault () = 0;
  101. // Cloning
  102. virtual AcGiLineAttributes* clone () const = 0;
  103. }; // class AcGiLineAttributes
  104. #endif // __AcGiLineAttributes_H_Defined__