Point Cloud Library (PCL)  1.9.1-dev
opennurbs_linestyle.h
1 /* $NoKeywords: $ */
2 /*
3 //
4 // Copyright (c) 1993-2012 Robert McNeel & Associates. All rights reserved.
5 // OpenNURBS, Rhinoceros, and Rhino3D are registered trademarks of Robert
6 // McNeel & Associates.
7 //
8 // THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY.
9 // ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF
10 // MERCHANTABILITY ARE HEREBY DISCLAIMED.
11 //
12 // For complete openNURBS copyright information see <http://www.opennurbs.org>.
13 //
14 ////////////////////////////////////////////////////////////////
15 */
16 
17 #if !defined(OPENNURBS_LINESTYLE_INC_)
18 #define OPENNURBS_LINESTYLE_INC_
19 
20 
21 ///////////////////////////////////////////////////////////////////////////////
22 //
23 // Class ON_DisplayMaterialRef
24 //
25 
26 /*
27 Description:
28  Objects can have per viewport display properties
29  that override a viewport's default display
30  properties. These overrides are stored on
31  ON_3dmObjectAttributes as a list of
32  ON_DisplayMaterialRefs.
33 
34 Example:
35  For example, by default a viewport
36  might display objects using a wireframe, but
37  one special object may need to be shaded.
38  In this case the special object would have
39  a display material ref with the "wireframe"
40  viewport's id and the id of a display material
41  that specified shading.
42 */
43 class ON_CLASS ON_DisplayMaterialRef
44 {
45 public:
46  /*
47  Description:
48  Default constructor sets both ids to nil.
49  */
51  int Compare(const ON_DisplayMaterialRef& other) const;
52  bool operator==(const ON_DisplayMaterialRef& other) const;
53  bool operator!=(const ON_DisplayMaterialRef& other) const;
54  bool operator<(const ON_DisplayMaterialRef& other) const;
55  bool operator<=(const ON_DisplayMaterialRef& other) const;
56  bool operator>(const ON_DisplayMaterialRef& other) const;
57  bool operator>=(const ON_DisplayMaterialRef& other) const;
58 
59  // C++ default destructor, copy constructor and operator=
60  // work fine.
61 
62  ON_UUID m_viewport_id; // identifies the ON_Viewport
63  // If nil, then the display material
64  // will be used in all viewports
65  // that are not explictly referenced
66  // in other ON_DisplayMaterialRefs.
67 
68  ON_UUID m_display_material_id; // id used to find display attributes
69 
70  // For Rhino V4 the per detail visibility attribute is implemented
71  // through a display material reference on an object. This is ONLY
72  // for for detail viewports and only for V4. Keep this uuid around
73  // so the per detail attributes in future versions of Rhino can be
74  // implemented a different way.
75  // {1403A7E4-E7AD-4a01-A2AA-41DAE6BE7ECB}
77 };
78 
79 
80 //////////////////////////////////////////////////////////////////////
81 // class ON_LinetypeSegment
82 
83 class ON_CLASS ON_LinetypeSegment
84 {
85 public:
87 
88  bool operator==( const ON_LinetypeSegment& src) const;
89  bool operator!=( const ON_LinetypeSegment& src) const;
90 
91  // For a curve to be drawn starting at the start point
92  // and ending at the endpoint, the first segment
93  // in the pattern must be a stLine type
94  enum eSegType
95  {
98  };
99 
100  void Dump( class ON_TextLog& ) const;
101 
102  // do not add read/write functions to this class
103 
104  double m_length; // length in millimeters on printed output
106 };
107 
108 #endif
static const ON_UUID m_invisible_in_detail_id