Point Cloud Library (PCL)  1.14.1-dev
opennurbs_detail.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(ON_DETAIL_OBJECTY_INC_)
18 #define ON_DETAIL_OBJECTY_INC_
19 
20 class ON_CLASS ON_DetailView : public ON_Geometry
21 {
22  ON_OBJECT_DECLARE(ON_DetailView);
23 
24 public:
27 
28  // C++ defaults for copy constructor and
29  // operator= work fine.
30 
31  //////////////////////////////////////////////////////
32  //
33  // virtual ON_Object overrides
34  //
36 
37  ON_BOOL32 IsValid( ON_TextLog* text_log = NULL ) const;
38 
39  void Dump( ON_TextLog& ) const;
40 
41  unsigned int SizeOf() const;
42 
43  ON_BOOL32 Write(
44  ON_BinaryArchive& binary_archive
45  ) const;
46 
47  ON_BOOL32 Read(
48  ON_BinaryArchive& binary_archive
49  );
50 
51  ON::object_type ObjectType() const; // returns ON::detail_object
52 
53  //////////////////////////////////////////////////////
54  //
55  // virtual ON_Geometry overrides
56  // The m_boundary determines all bounding boxes
57  //
58  int Dimension() const;
59 
60  ON_BOOL32 GetBBox(
61  double* boxmin,
62  double* boxmax,
63  int bGrowBox = false
64  ) const;
65 
67  ON_BoundingBox& tight_bbox,
68  int bGrowBox = false,
69  const ON_Xform* xform = 0
70  ) const;
71 
72  ON_BOOL32 Transform( const ON_Xform& xform );
73 
74  // m_page_per_model_ratio is the ratio of page length / model length
75  // where both lengths are in the same unit system
76  // (ex. 1/4" on page = 1' in model = 0.25/12 = 0.02083)
77  // ( 1mm on page = 1m in model = 1/1000 = 0.001)
78  // If m_page_per_model_ratio > 0.0, then the detail
79  // is drawn using the specified scale.
81 
82  // A view with ON_3dmView::m_view_type = ON::nested_view_type
83  // This field is used for IO purposes only. Runtime detail
84  // view projection information is on CRhDetailViewObject.
86 
87  // 2d curve in page layout coordinates in mm
88  // (0,0) = lower left corner of page
90 };
91 
92 
93 
94 #endif
95 
ON::object_type ObjectType() const
ON_BOOL32 GetBBox(double *boxmin, double *boxmax, int bGrowBox=false) const
unsigned int SizeOf() const
ON_NurbsCurve m_boundary
ON_BOOL32 Read(ON_BinaryArchive &binary_archive)
double m_page_per_model_ratio
ON_3dmView m_view
int Dimension() const
ON_BOOL32 Write(ON_BinaryArchive &binary_archive) const
void Dump(ON_TextLog &) const
bool GetTightBoundingBox(ON_BoundingBox &tight_bbox, int bGrowBox=false, const ON_Xform *xform=0) const
ON_BOOL32 IsValid(ON_TextLog *text_log=NULL) const
ON_BOOL32 Transform(const ON_Xform &xform)
void MemoryRelocate()