opennurbs_detail.h
Go to the documentation of this file.
00001 /* $NoKeywords: $ */
00002 /*
00003 //
00004 // Copyright (c) 1993-2012 Robert McNeel & Associates. All rights reserved.
00005 // OpenNURBS, Rhinoceros, and Rhino3D are registered trademarks of Robert
00006 // McNeel & Associates.
00007 //
00008 // THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY.
00009 // ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF
00010 // MERCHANTABILITY ARE HEREBY DISCLAIMED.
00011 //                              
00012 // For complete openNURBS copyright information see <http://www.opennurbs.org>.
00013 //
00015 */
00016 
00017 #if !defined(ON_DETAIL_OBJECTY_INC_)
00018 #define ON_DETAIL_OBJECTY_INC_
00019 
00020 class ON_CLASS ON_DetailView : public ON_Geometry
00021 {
00022   ON_OBJECT_DECLARE(ON_DetailView);
00023 
00024 public:
00025   ON_DetailView();
00026   ~ON_DetailView();
00027 
00028   // C++ defaults for copy constructor and
00029   // operator= work fine.
00030 
00032   //
00033   // virtual ON_Object overrides
00034   //
00035   void MemoryRelocate();
00036 
00037   ON_BOOL32 IsValid( ON_TextLog* text_log = NULL ) const;
00038 
00039   void Dump( ON_TextLog& ) const;
00040 
00041   unsigned int SizeOf() const;
00042 
00043   ON_BOOL32 Write(
00044          ON_BinaryArchive& binary_archive
00045        ) const;
00046 
00047   ON_BOOL32 Read(
00048          ON_BinaryArchive& binary_archive
00049        );
00050 
00051   ON::object_type ObjectType() const; // returns ON::detail_object
00052 
00054   //
00055   // virtual ON_Geometry overrides
00056   // The m_boundary determines all bounding boxes 
00057   //
00058   int Dimension() const;
00059 
00060   ON_BOOL32 GetBBox(
00061          double* boxmin,
00062          double* boxmax,
00063          int bGrowBox = false
00064          ) const;
00065 
00066         bool GetTightBoundingBox( 
00067                         ON_BoundingBox& tight_bbox, 
00068       int bGrowBox = false,
00069                         const ON_Xform* xform = 0
00070       ) const;
00071 
00072   ON_BOOL32 Transform( const ON_Xform& xform );
00073 
00074   // m_page_per_model_ratio is the ratio of page length / model length
00075   // where both lengths are in the same unit system
00076   // (ex. 1/4" on page = 1' in model = 0.25/12 = 0.02083)
00077   // (    1mm on page  = 1m in model = 1/1000  = 0.001)
00078   // If m_page_per_model_ratio > 0.0, then the detail
00079   // is drawn using the specified scale.
00080   double m_page_per_model_ratio;
00081 
00082   // A view with ON_3dmView::m_view_type = ON::nested_view_type
00083   // This field is used for IO purposes only.  Runtime detail
00084   // view projection information is on CRhDetailViewObject.
00085   ON_3dmView m_view;
00086 
00087   // 2d curve in page layout coordinates in mm
00088   // (0,0) = lower left corner of page
00089   ON_NurbsCurve m_boundary;
00090 };
00091 
00092 
00093 
00094 #endif
00095 


pcl
Author(s): Open Perception
autogenerated on Wed Aug 26 2015 15:27:00