Point Cloud Library (PCL) 1.13.0
opennurbs_3dm_settings.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_3DM_SETTINGS_INC_)
18#define OPENNURBS_3DM_SETTINGS_INC_
19
20
21///////////////////////////////////////////////////////////////////////
22//
23// units and tolerances
24//
25
27{
28public:
33
34 void Default();
35
37 bool Write( ON_BinaryArchive& ) const;
38
39 void Dump( ON_TextLog& ) const;
40
41 //////////
42 // Returns scale factor that needs to be applied to change from
43 // the argument's unit system to m_unit_system.
44 // When m_unit_system is not ON::custom_unit_system,
45 // Scale(us) = ON::UnitScale(us,m_unit_system). When Scale(us)
46 // When m_unit_system is ON::custom_unit_system,
47 // Scale(us) = ON::UnitScale(us,ON::meters)*m_custom_unit_scale.
48 double Scale( ON::unit_system ) const;
49
50 //ON::unit_system m_unit_system;
52
53 double m_absolute_tolerance; // in units (default = 1/100)
54 double m_angle_tolerance; // in radians (default = 3 degrees)
55 double m_relative_tolerance; // fraction >= 0 and < 1 (default = 1%)
56
57 ON::distance_display_mode m_distance_display_mode;
58 int m_distance_display_precision; // decimal mode: number of decimal places
59 // fractional modes:
60 // denominator = (1/2)^m_distance_display_precision
61
62 ////////////
63 // These settings apply when m_unit_system is ON::custom_unit_system
64 //
65 //double m_custom_unit_scale; // 1 meter = m_custom_unit_scale custom units
66 //ON_wString m_custom_unit_name; // name of custom units
67};
68
69///////////////////////////////////////////////////////////////////////
70//
71// Model settings
72// render mesh defaults
73// viewports
74// construction planes
75//
76
78{
79public:
84
85 void Default();
86
88 bool Write( ON_BinaryArchive& ) const;
89
90 void Dump( ON_TextLog& text_log ) const;
91
92 // these are the running defaults for making dimensions
93 // they are also the things written to the 3dm file as dimension settings
94 double m_dimscale; // model size / plotted size
96 double m_dimexe;
97 double m_dimexo;
101
102 /*
103 Returns:
104 Value of m_world_view_text_scale;
105 */
106 double WorldViewTextScale() const;
107
108 /*
109 Parameters:
110 world_view_text_scale - [in]
111 Sets value of m_world_view_text_scale.
112 */
113 void SetWorldViewTextScale(double world_view_text_scale );
114
115 /*
116 Returns:
117 Value of m_world_view_hatch_scale;
118 */
119 double WorldViewHatchScale() const;
120
121 /*
122 Parameters:
123 world_view_hatch_scale - [in]
124 Sets value of m_world_view_hatch_scale.
125 */
126 void SetWorldViewHatchScale(double world_view_hatch_scale );
127
128
129 /*
130 Returns:
131 Value of m_bEnableAnnotationScaling;
132 */
134
135 /*
136 Parameters:
137 bEnable - [in]
138 Sets value of m_bEnableAnnotationScaling.
139 */
140 void EnableAnnotationScaling( bool bEnable );
141
142 /*
143 Returns:
144 Value of m_bEnableHatchScaling;
145 */
147
148 /*
149 Parameters:
150 bEnable - [in]
151 Sets value of m_bEnableHatchScaling.
152 */
153 void EnableHatchScaling( bool bEnable );
154
155 // Present but not used in V4 or V5 - removed 5 August 2010 to make room
156 // for m_world_view_text_scale and m_bEnableAnnotationScaling
157 //// added 12/28/05 LW
158 //double m_dimdle;
159 //double m_dimgap;
160private:
161 // If m_bEnableAnnotationScaling is true,
162 // and ON_Annotation2::m_annotative_scale is true,
163 // and ON_Annotation2::m_type == ON::dtTextBlock,
164 // and the text object is being displayed in a world
165 // view (not a detail view and not a page view),
166 // then the text will be scaled by m_world_view_text_scale.
167 // The default is 1.0. Values <= 0.0 are not valid.
168 float m_world_view_text_scale;
169 float m_world_view_hatch_scale;
170
171private:
172 // If m_bEnableAnnotationScaling is false:
173 // * m_world_view_text_scale is ignored.
174 // * text is not scaled.
175 // * ON_DimStyle::DimScale() determines the scale
176 // applied to all other annotation objects in all
177 // types of views.
178 // * The value of ON_DetailView::m_page_per_model_ratio
179 // is applied to all objects (annotation and geometry)
180 // in the detail view.
181 //
182 // If m_bEnableAnnotationScaling is true:
183 // * m_world_view_text_scale is used as described above.
184 // * ON_DimStyle::DimScale() determines the scale
185 // applied to all non text annotation objects in
186 // world views.
187 // * ON_DimStyle::DimScale() is ignored in page and
188 // detail views.
189 // * ON_DetailView::m_page_per_model_ratio is ingored
190 // for annotation objects in detail views, other
191 // geometry is scaled.
192 //
193 // Default is true.
194 unsigned char m_bEnableAnnotationScaling;
195
196 unsigned char m_bEnableHatchScaling;
197
198private:
199 unsigned char m_reserved[6];
200
201public:
202
203 ON::unit_system m_dimunits; // units used to measure the dimension
204 int m_arrowtype; // 0: filled narrow triangular arrow
205 int m_angularunits; // 0: degrees, 1: radians
206 int m_lengthformat; // 0: decimal, ...
207 int m_angleformat; // 0: decimal degrees, ...
208 int m_textalign; // 0: above line, 1: in line, 2: horizontal
209 int m_resolution; // depends on m_lengthformat
210 // for decimal, digits past the decimal point
211
212 ON_wString m_facename; // [LF_FACESIZE] // windows font name
213};
214
215//////////////////////////////////////////////////////////////////////////////////////////
216//
217// ON_3dmConstructionPlaneGridDefaults
218//
219// Default settings used for construction plane grids
221{
222public:
227
228 void Default();
229
230 bool Write( ON_BinaryArchive& ) const;
232
233 void Dump( ON_TextLog& text_log ) const;
234
235 double m_grid_spacing; // distance between grid lines
236 double m_snap_spacing; // when "grid snap" is enabled, the
237 // distance between snap points. Typically
238 // this is the same distance as grid spacing.
239 int m_grid_line_count; // number of grid lines in each direction
240 int m_grid_thick_frequency; // thick line frequency
241 // 0: none,
242 // 1: all lines are thick,
243 // 2: every other is thick, ...
244
245 ON_BOOL32 m_bShowGrid;
248};
249
250//////////////////////////////////////////////////////////////////////////////////////////
251//
252// ON_3dmConstructionPlane
253//
255{
256public:
259
260 // default copy constructor and operator= work fine
261 //ON_3dmConstructionPlane(const ON_3dmConstructionPlane&);
262 //ON_3dmConstructionPlane& operator=(const ON_3dmConstructionPlane&);
263
264 void Default();
265
266 bool Write( ON_BinaryArchive& ) const;
268
269 void Dump( ON_TextLog& text_log ) const;
270
272
273 // construction grid appearance
274 double m_grid_spacing; // distance between grid lines
275 double m_snap_spacing; // when "grid snap" is enabled, the
276 // distance between snap points. Typically
277 // this is the same distance as grid spacing.
278 int m_grid_line_count; // number of grid lines in each direction
279 int m_grid_thick_frequency; // thick line frequency
280 // 0: none,
281 // 1: all lines are thick,
282 // 2: every other is thick, ...
283 bool m_bDepthBuffer; // false=grid is always drawn behind 3d geometry
284 // true=grid is drawn at its depth as a 3d plane
285 // and grid lines obscure things behind the grid.
286
288};
289
290#if defined(ON_DLL_TEMPLATE)
291// This stuff is here because of a limitation in the way Microsoft
292// handles templates and DLLs. See Microsoft's knowledge base
293// article ID Q168958 for details.
294#pragma warning( push )
295#pragma warning( disable : 4231 )
296ON_DLL_TEMPLATE template class ON_CLASS ON_ClassArray<ON_3dmConstructionPlane>;
297#pragma warning( pop )
298#endif
299
300//////////////////////////////////////////////////////////////////////////////////////////
301//
302// ON_3dmViewPosition
303//
304class ON_CLASS ON_3dmViewPosition
305{
306public:
307 // view window relative position and state in parent frame
312
313 void Default();
314
315 bool Write( ON_BinaryArchive& ) const;
317
318 // relative position of view window in main frame
319 // if m_floating_viewport>0, this is relative position of the view window
320 // on the virtual screen (union of potentially multiple monitors)
321 double m_wnd_left; // 0.0 to 1.0
323 double m_wnd_top;
325 ON_BOOL32 m_bMaximized; // true if view window is maximized
326
327 // m_floating_viewport is used to track floating viewport information.
328 // 0 = the view is docked in the main application window.
329 // >0 = the view is floating. When floating, this corresponds to the
330 // number of monitors on on the user's computer when the file was saved
331 unsigned char m_floating_viewport;
332private:
333 // reserved for future use
334 unsigned char m_reserved_1;
335 unsigned char m_reserved_2;
336 unsigned char m_reserved_3;
337};
338
339//////////////////////////////////////////////////////////////////////////////////////////
340//
341// ON_3dmViewTraceImage
342//
344{
345public:
348 bool operator==( const ON_3dmViewTraceImage& ) const;
349 bool operator!=( const ON_3dmViewTraceImage& ) const;
350
351 void Default();
352
353 bool Write( ON_BinaryArchive& ) const;
355
356 // view window relative position and state in parent frame
358 double m_width;
359 double m_height;
360
362 bool m_bGrayScale; // true if image should be black and white
363 bool m_bHidden; // true if image is currently hidden from view
364 bool m_bFiltered; // true if image should be filtered (bilinear) before displayed.
365};
366
367
368//////////////////////////////////////////////////////////////////////////////////////////
369//
370// ON_3dmViewTraceImage
371//
373{
374public:
377 bool operator==( const ON_3dmWallpaperImage& ) const;
378 bool operator!=( const ON_3dmWallpaperImage& ) const;
379
380 void Default();
381
382 bool Write( ON_BinaryArchive& ) const;
384
386 bool m_bGrayScale; // true if image should be black and white
387 bool m_bHidden; // true if image is currently hidden from view
388};
389
390//////////////////////////////////////////////////////////////////////////////////////////
391//
392// ON_3dmView
393//
394
395class ON_CLASS ON_3dmPageSettings
396{
397public:
400
401 bool IsValid( ON_TextLog* text_log = 0 ) const;
402
403 void Default();
404
406
407 // Overall size of the page in millimeters
410
411 // Page margins in millimeters
416
418
419 bool Write(ON_BinaryArchive& archive) const;
420 bool Read(ON_BinaryArchive& archive);
421};
422
423
424class ON_CLASS ON_3dmView
425{
426public:
429
430 // The C++ default copy constructor and operator= work fine.
431 // Do not provide customized versions.
432 // NO // ON_3dmView(const ON_3dmView&);
433 // NO // ON_3dmView& operator=(const ON_3dmView&);
434
435 void Default();
436
437 bool Write( ON_BinaryArchive& ) const;
439
440 void Dump( ON_TextLog& text_log ) const;
441
442 bool IsValid( ON_TextLog* text_log = 0 ) const;
443
444 // view projection information
446
447 // clipping planes
448 // Prior to Dec 14, 2010 m_clipping_planes was not saved with the view.
449 // After Dec 14, 2010 m_clipping_planes is saved.
451
452 // If true, the the camera location, camera direction,
453 // and lens angle should not be changed.
454 // It is ok to adjust clipping planes.
456
457 ///////////////////////////////////////////////////////////////////////
458 //
459 // target point
460 //
461
462 /*
463 Returns:
464 Target point. This point is saved on m_vp.m_target_point.
465 The default constructor sets the target point to
466 ON_3dPoint::UnsetPoint. You must explicitly set the target
467 point if you want to use it.
468 Remarks:
469 The target point is stored on m_vp.m_target_point. The
470 value ON_3dmView.m_target is obsolete. This function always
471 returns the value of m_vp.m_target_point.
472
473 */
475
476 /*
477 Description:
478 Sets the target point.
479 Parameters:
480 target_point - [in]
481 When in double, the point m_vp.FrustumCenterPoint(ON_UNSET_VALUE)
482 is a good choice.
483 Remarks:
484 This point is saved on m_vp.m_target_point. Using this function
485 keeps the obsolete ON_3dmView.m_target value equal to
486 m_vp.m_target_point.
487 */
488 bool SetTargetPoint(ON_3dPoint target_point);
489
490 ///////////////////////////////////////////////////////////////////////
491 // OBSOLETE //
492 // Use ON_3dmView::SetTargetPoint() and ON_3dmView::TargetPoint() //
493 // functions to set and get the target point. The m_target member //
494 // will be removed in V6. The only reason m_target is still here //
495 // is to avoid breaking the public SDK. //
496 /* OBSOLETE */ ON_3dPoint m_target; // OBSOLETE //
497 // Hmm, did you notice that m_target is obsolete? Try using the //
498 // SetTargetPoint() and TargetPoint() functions instead. //
499 // OBSOLETE //
500 ///////////////////////////////////////////////////////////////////////
501
502 //
503 ///////////////////////////////////////////////////////////////////////
504
505 ON_wString m_name; // name on window
506
507 // If m_display_mode_id is nil, then use m_display_mode
508 // to show one of the "standard" (wireframe, shaded, rendered)
509 // display modes. If m_display_mode_id is not nil, then
510 // ignore m_display_mode.
512 ON::display_mode m_display_mode;
513
514 // position of view in parent window
515 // (relative display device coordinates)
517
518 ON::view_type m_view_type; // model, page, or nested
519
520 // If m_view_type == ON::page_view_type, then the m_page_settings
521 // records the page size. Otherwise, m_page_settings should
522 // be ignored.
524
525 // construction plane
529
530 // world axes icon
532
533 // tracing image
535
536 // wallpaper image
538};
539
540#if defined(ON_DLL_TEMPLATE)
541// This stuff is here because of a limitation in the way Microsoft
542// handles templates and DLLs. See Microsoft's knowledge base
543// article ID Q168958 for details.
544#pragma warning( push )
545#pragma warning( disable : 4231 )
546ON_DLL_TEMPLATE template class ON_CLASS ON_ClassArray<ON_3dmView>;
547#pragma warning( pop )
548#endif
549
550//////////////////////////////////////////////////////////////////////////////////////////
551//
552// ON_3dmRenderSettings
553//
554
556{
557public:
562
563 void Default();
564
565 bool Write( ON_BinaryArchive& ) const;
567
568 void Dump( ON_TextLog& text_log ) const;
569
571 void SetScaleBackgroundToFit( bool bScaleBackgroundToFit );
572
573 //////////
574 // false: image pixel size = current viewport size
575 // true: image pixel size = m_image_width X m_image_height pixels
577 int m_image_width; // image width in pixels
578 int m_image_height; // image height in pixels
579
580private:
581 bool m_bScaleBackgroundToFit;
582 unsigned char m_reserved1[3];
583public:
584
585 ////////
586 // Number of dots/inch (dots=pixels) to use when printing and
587 // saving bitmaps. The default is 72.0 dots/inch.
588 double m_image_dpi;
589 //////////
590 // unit system to use when converting image pixel size and dpi
591 // information into a print size. Default = inches
592 ON::unit_system m_image_us;
593
595
596 int m_background_style; // 0 = solid color, 1 = "wallpaper" image, 2 = Gradient, 3 = Environment
597 ON_Color m_background_color; // also Top color of gradient...
599
601
602 ON_BOOL32 m_bDepthCue;
603 ON_BOOL32 m_bFlatShade;
604
611
612 int m_antialias_style; // 0 = none, 1 = normal, 2 = best
613
614 int m_shadowmap_style; // 0 = none, 1 = normal, 2 = best
618
620
621 // Flags that are used to determine which render settings a render
622 // plugin uses, and which ones the display pipeline should use.
623 // Note: Render plugins set these, and they don't need to persist
624 // in the document...Also, when set, they turn OFF their
625 // corresponding setting in the Display Attributes Manager's
626 // UI pages for "Rendered" mode.
636
637private:
638 unsigned char m_reserved2[3];
639};
640
641
642//////////////////////////////////////////////////////////////////////////////////////////
643//
644// ON_EarthAnchorPoint
645//
646
648{
649public:
652
653 static
655 const ON_EarthAnchorPoint*,
657 );
658
659 static
661 const ON_EarthAnchorPoint*,
663 );
664
665 static
667 const ON_EarthAnchorPoint*,
669 );
670
671 static
673 const ON_EarthAnchorPoint*,
675 );
676
677 void Default();
679 bool Write( ON_BinaryArchive& ) const;
680
681 // Point on the Earth
682 // Latitude (degrees): +90 = north pole, 0 = equator, -90 = south pole
683 // Longitude (degrees): 0 = prime meridian (Greenwich meridian)
684 // Elevation (meters):
685 double m_earth_basepoint_latitude; // in decimal degrees
686 double m_earth_basepoint_longitude; // in decimal degrees
687 double m_earth_basepoint_elevation; // in meters
688 int m_earth_basepoint_elevation_zero; // 0 = ground level
689 // 1 = mean sea level
690 // 2 = center of earth
691
692 // Corresponding model point in model coordinates.
693 ON_3dPoint m_model_basepoint; // in model coordinates
694
695 // Earth directions in model coordinates
696 ON_3dVector m_model_north; // in model coordinates
697 ON_3dVector m_model_east; // in model coordinates
698
699 // Identification information about this location
700 ON_UUID m_id; // unique id for this anchor point
704 ON_wString m_url_tag; // UI link text for m_url
705
706 /*
707 Parameters:
708 model_compass - [out]
709 A plane in model coordinates whose xaxis points East,
710 yaxis points North and zaxis points up. The origin
711 is set to m_model_basepoint.
712 */
714 ON_Plane& model_compass
715 ) const;
716
717 /*
718 Description:
719 Get a transformation from model coordinates to earth coordinates.
720 This transformation assumes the model is small enough that
721 the curvature of the earth can be ignored.
722 Parameters:
723 model_unit_system - [in]
724 model_to_earth - [out]
725 Transformation from model coordinates to earth locations
726 (degrees latitude,degrees longitude,elevation in meters)
727 Remarks:
728 If M is a point in model coordinates and E = model_to_earth*M,
729 then
730 E.x = latitude in decimal degrees
731 E.y = longitude in decimal degrees
732 E.z = elevation in meters above mean sea level
733
734 Because the earth is not flat, there is a small amount of error
735 when using a linear transformation to calculate oblate spherical
736 coordinates. This error is small. If the distance from P to M
737 is d meters, then the approximation error is
738
739 latitude error <=
740 longitude error <=
741 elevation error <= 6379000*((1 + (d/6356000)^2)-1) meters
742
743 In particular, if every point in the model is within 1000 meters of
744 the m_model_basepoint, then the maximum approximation errors are
745
746 latitude error <=
747 longitude error <=
748 elevation error <= 8 centimeters
749 */
751 const ON_UnitSystem& model_unit_system,
752 ON_Xform& model_to_earth
753 ) const;
754};
755
756
757
758class ON_CLASS ON_3dmIOSettings
759{
760public:
762
763 void Default();
764
767
768 // bitmaps associated with rendering materials
770
771 // As of 7 February 2012, the m_idef_link_update setting
772 // controls if, when and how linked and linked_and_embedded
773 // instance defintions are updated when the source archive
774 // that was used to create the idef has changed.
776 // 1 = prompt - ask the user if the idef should be updated.
777 // 2 = always update - no prompting
778 // 3 = never update - no prompting
779 // Any value not equal to 1,2 or 3 shall be treated as 1.
780};
781
782//////////////////////////////////////////////////////////////////////////////////////////
783//
784// ON_3dmSettings
785//
786
787class ON_CLASS ON_3dmSettings
788{
789public:
792
793 // C++ copy constructor and operator= work fine.
794 // Do not provide custom versions.
795 // NO // ON_3dmSettings(const ON_3dmSettings&);
796 // NO // ON_3dmSettings& operator=(const ON_3dmSettings&);
797
798 void Default();
799
802
803 void Dump( ON_TextLog& ) const;
804
805 // model URL (can be empty)
807
808 // Model basepoint is used when the file is read as
809 // an instance definition and is the point that is
810 // mapped to the origin in the instance definition.
812
813
814 // If set, this is the model's location on the earth.
815 // This information is used when the model is used
816 // with GIS information.
818
819 // Model space tolerances and unit system
821
822 // Page space (printing/paper) tolerances and unit system
824
825 // settings used for automatically created rendering meshes
827
828 // saved custom settings
830
831 // settings used for automatically created analysis meshes
833
834 // settings used when annotation objects are created
836
839 ON_ClassArray<ON_3dmView> m_views; // current viewports
840 ON_UUID m_active_view_id; // id of "active" viewport
841
842 // These fields determine what layer, material, color, line style, and
843 // wire density are used for new objects.
845
847 ON::object_material_source m_current_material_source;
848
850 ON::object_color_source m_current_color_source;
851
853 ON::plot_color_source m_current_plot_color_source;
854
856 ON::object_linetype_source m_current_linetype_source;
857
859
861
862 // Surface wireframe density
863 //
864 // @untitled table
865 // 0 boundary + "knot" wires
866 // 1 boundary + "knot" wires + 1 interior wire if no interior "knots"
867 // N>=2 boundry + "knot" wires + (N-1) interior wires
869
871
872 // default settings for construction plane grids
874
875 // World scale factor to apply to non-solid linetypes
876 // for model display. For plotting, the linetype settings
877 // are used without scaling.
879
880 // Plugins that were loaded when the file was saved.
882
884private:
885 bool Read_v1(ON_BinaryArchive&);
886 bool Read_v2(ON_BinaryArchive&);
887 bool Write_v1(ON_BinaryArchive&) const;
888 bool Write_v2(ON_BinaryArchive&) const;
889};
890
891#endif
void Dump(ON_TextLog &text_log) const
double WorldViewTextScale() const
bool Read(ON_BinaryArchive &)
ON_3dmAnnotationSettings(const ON_3dmAnnotationSettings &)
bool IsHatchScalingEnabled() const
bool Write(ON_BinaryArchive &) const
void EnableAnnotationScaling(bool bEnable)
void EnableHatchScaling(bool bEnable)
ON_3dmAnnotationSettings & operator=(const ON_3dmAnnotationSettings &)
bool IsAnnotationScalingEnabled() const
double WorldViewHatchScale() const
void SetWorldViewTextScale(double world_view_text_scale)
void SetWorldViewHatchScale(double world_view_hatch_scale)
bool Read(ON_BinaryArchive &)
ON_3dmConstructionPlaneGridDefaults & operator=(const ON_3dmConstructionPlaneGridDefaults &)
void Dump(ON_TextLog &text_log) const
ON_3dmConstructionPlaneGridDefaults(const ON_3dmConstructionPlaneGridDefaults &)
bool Write(ON_BinaryArchive &) const
void Dump(ON_TextLog &text_log) const
bool Write(ON_BinaryArchive &) const
bool Read(ON_BinaryArchive &)
bool Write(ON_BinaryArchive &) const
bool Read(ON_BinaryArchive &)
bool IsValid(ON_TextLog *text_log=0) const
bool Write(ON_BinaryArchive &archive) const
bool Read(ON_BinaryArchive &archive)
bool Read(ON_BinaryArchive &)
bool Write(ON_BinaryArchive &) const
bool ScaleBackgroundToFit() const
ON_3dmRenderSettings(const ON_3dmRenderSettings &)
void Dump(ON_TextLog &text_log) const
ON_3dmRenderSettings & operator=(const ON_3dmRenderSettings &)
void SetScaleBackgroundToFit(bool bScaleBackgroundToFit)
ON_ClassArray< ON_3dmConstructionPlane > m_named_cplanes
ON_3dmUnitsAndTolerances m_PageUnitsAndTolerances
ON_3dmIOSettings m_IO_settings
ON_ClassArray< ON_3dmView > m_views
ON_MeshParameters m_RenderMeshSettings
ON_ClassArray< ON_PlugInRef > m_plugin_list
ON::object_material_source m_current_material_source
void Dump(ON_TextLog &) const
ON_ClassArray< ON_3dmView > m_named_views
bool Read(ON_BinaryArchive &)
ON::object_linetype_source m_current_linetype_source
ON_3dmAnnotationSettings m_AnnotationSettings
ON::plot_color_source m_current_plot_color_source
ON_3dmUnitsAndTolerances m_ModelUnitsAndTolerances
ON_EarthAnchorPoint m_earth_anchor_point
ON_3dmRenderSettings m_RenderSettings
ON_MeshParameters m_CustomRenderMeshSettings
ON_3dmConstructionPlaneGridDefaults m_GridDefaults
ON_MeshParameters m_AnalysisMeshSettings
ON::object_color_source m_current_color_source
bool Write(ON_BinaryArchive &) const
double Scale(ON::unit_system) const
ON_3dmUnitsAndTolerances(const ON_3dmUnitsAndTolerances &)
ON_3dmUnitsAndTolerances & operator=(const ON_3dmUnitsAndTolerances &)
bool Write(ON_BinaryArchive &) const
ON::distance_display_mode m_distance_display_mode
bool Read(ON_BinaryArchive &)
void Dump(ON_TextLog &) const
bool Write(ON_BinaryArchive &) const
ON_3dmWallpaperImage m_wallpaper_image
ON::view_type m_view_type
bool Read(ON_BinaryArchive &)
bool SetTargetPoint(ON_3dPoint target_point)
ON_SimpleArray< ON_ClippingPlaneInfo > m_clipping_planes
ON_3dmConstructionPlane m_cplane
ON_3dPoint TargetPoint() const
bool IsValid(ON_TextLog *text_log=0) const
ON_3dmViewPosition m_position
void Default()
ON_3dmViewTraceImage m_trace_image
void Dump(ON_TextLog &text_log) const
ON_3dmPageSettings m_page_settings
ON::display_mode m_display_mode
bool Read(ON_BinaryArchive &)
unsigned char m_floating_viewport
ON_3dmViewPosition & operator=(const ON_3dmViewPosition &)
ON_3dmViewPosition(const ON_3dmViewPosition &)
bool Write(ON_BinaryArchive &) const
bool operator!=(const ON_3dmViewTraceImage &) const
bool operator==(const ON_3dmViewTraceImage &) const
bool Read(ON_BinaryArchive &)
bool Write(ON_BinaryArchive &) const
bool Write(ON_BinaryArchive &) const
bool operator==(const ON_3dmWallpaperImage &) const
bool Read(ON_BinaryArchive &)
bool operator!=(const ON_3dmWallpaperImage &) const
static int CompareEarthLocation(const ON_EarthAnchorPoint *, const ON_EarthAnchorPoint *)
bool Write(ON_BinaryArchive &) const
bool Read(ON_BinaryArchive &)
bool GetModelToEarthXform(const ON_UnitSystem &model_unit_system, ON_Xform &model_to_earth) const
static int CompareModelDirection(const ON_EarthAnchorPoint *, const ON_EarthAnchorPoint *)
bool GetModelCompass(ON_Plane &model_compass) const
static int Compare(const ON_EarthAnchorPoint *, const ON_EarthAnchorPoint *)
static int CompareIdentification(const ON_EarthAnchorPoint *, const ON_EarthAnchorPoint *)