Sync changes from upstream repository

Co-authored-by: Alain <alain@mcneel.com>
Co-authored-by: Andrew Le Bihan <andy@mcneel.com>
Co-authored-by: chuck <chuck@mcneel.com>
Co-authored-by: croudyj <croudyj@gmail.com>
Co-authored-by: Dale Fugier <dale@mcneel.com>
Co-authored-by: Giulio Piacentino <giulio@mcneel.com>
Co-authored-by: Greg Arden <greg@mcneel.com>
Co-authored-by: Jussi Aaltonen <jussi@mcneel.com>
Co-authored-by: kike-garbo <kike@mcneel.com>
Co-authored-by: Steve Baer <steve@mcneel.com>
This commit is contained in:
Bozo The Builder
2022-11-21 14:18:57 -08:00
parent e37a90a8a9
commit e7c29061e3
325 changed files with 3592 additions and 2749 deletions

View File

@@ -12,6 +12,7 @@
////////////////////////////////////////////////////////////////
#include "opennurbs.h"
#include "opennurbs_internal_defines.h"
#if !defined(ON_COMPILING_OPENNURBS)
// This check is included in all opennurbs source .c and .cpp files to insure
@@ -820,8 +821,247 @@ unsigned int ON_3dmUnitsAndTolerances::SetInvalidTolerancesToDefaultValues()
// ON_3dmRenderSettings
//
// This is inside the 'current content' section.
#define ON_RENDER_BACKGROUND_ENVIRONMENT L"environment"
// These are inside the 'rendering' section.
#define ON_RENDER_CUSTOM_REFLECTIVE_ENVIRONMENT_ON L"custom-env-for-refl-and-refr-on"
#define ON_RENDER_CUSTOM_REFLECTIVE_ENVIRONMENT L"custom-env-for-refl-and-refr"
// These are inside the 'sun' section.
#define ON_RENDER_SUN_SKYLIGHT_CUSTOM_ENVIRONMENT_ON L"skylight-custom-environment-on"
#define ON_RENDER_SUN_SKYLIGHT_CUSTOM_ENVIRONMENT L"skylight-custom-environment"
static const wchar_t* XMLPathBack360(void) // Not used for 'override'.
{
return ON_RDK_DOCUMENT ON_RDK_SLASH ON_RDK_CURRENT_CONTENT;
}
static const wchar_t* XMLPathReflRefr(void)
{
return ON_RDK_DOCUMENT ON_RDK_SLASH ON_RDK_SETTINGS ON_RDK_SLASH ON_RDK_RENDERING;
}
static const wchar_t* XMLPathSkylight(void)
{
return ON_RDK_DOCUMENT ON_RDK_SLASH ON_RDK_SETTINGS ON_RDK_SLASH ON_RDK_SUN;
}
ON_EnvironmentsPrivate::ON_EnvironmentsPrivate(const ON_EnvironmentsPrivate& ei)
{
operator = (ei);
}
ON_EnvironmentsPrivate& ON_EnvironmentsPrivate::operator = (const ON_EnvironmentsPrivate& ep)
{
if (this != &ep)
{
SetBackgroundRenderEnvironment (ep.BackgroundRenderEnvironment());
SetSkylightingRenderEnvironmentOverride(ep.SkylightingRenderEnvironmentOverride());
SetSkylightingRenderEnvironment (ep.SkylightingRenderEnvironment());
SetReflectionRenderEnvironmentOverride (ep.ReflectionRenderEnvironmentOverride());
SetReflectionRenderEnvironment (ep.ReflectionRenderEnvironment());
}
return *this;
}
bool ON_EnvironmentsPrivate::operator == (const ON_EnvironmentsPrivate& ep)
{
if (BackgroundRenderEnvironment() != ep.BackgroundRenderEnvironment()) return false;
if (SkylightingRenderEnvironmentOverride() != ep.SkylightingRenderEnvironmentOverride()) return false;
if (SkylightingRenderEnvironment() != ep.SkylightingRenderEnvironment()) return false;
if (ReflectionRenderEnvironmentOverride() != ep.ReflectionRenderEnvironmentOverride()) return false;
if (ReflectionRenderEnvironment() != ep.ReflectionRenderEnvironment()) return false;
return true;
}
ON_UUID ON_EnvironmentsPrivate::BackgroundRenderEnvironment(void) const
{
const wchar_t* s = ON_RENDER_BACKGROUND_ENVIRONMENT;
return GetParameter_NoType(XMLPathBack360(), s, L"uuid", ON_nil_uuid).AsUuid();
}
void ON_EnvironmentsPrivate::SetBackgroundRenderEnvironment(const ON_UUID& id)
{
const wchar_t* s = ON_RENDER_BACKGROUND_ENVIRONMENT;
SetParameter_NoType(XMLPathBack360(), s, id);
}
bool ON_EnvironmentsPrivate::SkylightingRenderEnvironmentOverride(void) const
{
const wchar_t* s = ON_RENDER_SUN_SKYLIGHT_CUSTOM_ENVIRONMENT_ON;
return GetParameter(XMLPathSkylight(), s, false);
}
void ON_EnvironmentsPrivate::SetSkylightingRenderEnvironmentOverride(bool on)
{
const wchar_t* s = ON_RENDER_SUN_SKYLIGHT_CUSTOM_ENVIRONMENT_ON;
SetParameter(XMLPathSkylight(), s, on);
}
ON_UUID ON_EnvironmentsPrivate::SkylightingRenderEnvironment(void) const
{
const wchar_t* s = ON_RENDER_SUN_SKYLIGHT_CUSTOM_ENVIRONMENT;
return GetParameter_NoType(XMLPathSkylight(), s, L"uuid", ON_nil_uuid).AsUuid();
}
void ON_EnvironmentsPrivate::SetSkylightingRenderEnvironment(const ON_UUID& id)
{
const wchar_t* s = ON_RENDER_SUN_SKYLIGHT_CUSTOM_ENVIRONMENT;
SetParameter_NoType(XMLPathSkylight(), s, id);
}
bool ON_EnvironmentsPrivate::ReflectionRenderEnvironmentOverride(void) const
{
const wchar_t* s = ON_RENDER_CUSTOM_REFLECTIVE_ENVIRONMENT_ON;
return GetParameter(XMLPathReflRefr(), s, false);
}
void ON_EnvironmentsPrivate::SetReflectionRenderEnvironmentOverride(bool on)
{
const wchar_t* s = ON_RENDER_CUSTOM_REFLECTIVE_ENVIRONMENT_ON;
SetParameter(XMLPathReflRefr(), s, on);
}
ON_UUID ON_EnvironmentsPrivate::ReflectionRenderEnvironment(void) const
{
const wchar_t* s = ON_RENDER_CUSTOM_REFLECTIVE_ENVIRONMENT;
return GetParameter_NoType(XMLPathReflRefr(), s, L"uuid", ON_nil_uuid).AsUuid();
}
void ON_EnvironmentsPrivate::SetReflectionRenderEnvironment(const ON_UUID& id)
{
const wchar_t* s = ON_RENDER_CUSTOM_REFLECTIVE_ENVIRONMENT;
SetParameter_NoType(XMLPathReflRefr(), s, id);
}
ON_OBJECT_IMPLEMENT(ON_3dmRenderSettings, ON_Object, "58A5953A-57C5-4FD3-84F5-7D4240478D15");
ON_3dmRenderSettingsPrivate::ON_3dmRenderSettingsPrivate()
:
_dithering (_rdk_document_data),
_ground_plane (_rdk_document_data),
_linear_workflow(_rdk_document_data),
_render_channels(_rdk_document_data),
_safe_frame (_rdk_document_data),
_skylight (_rdk_document_data),
_sun (_rdk_document_data),
_environments (_rdk_document_data)
{
}
const ON_3dmRenderSettingsPrivate& ON_3dmRenderSettingsPrivate::operator = (const ON_3dmRenderSettingsPrivate& p)
{
if (this != &p)
{
// Copy the XML.
_rdk_document_data = p._rdk_document_data;
// Check that all of the document objects now have matching properties.
ON_ASSERT(_dithering == p._dithering);
ON_ASSERT(_ground_plane == p._ground_plane);
ON_ASSERT(_linear_workflow == p._linear_workflow);
ON_ASSERT(_render_channels == p._render_channels);
ON_ASSERT(_safe_frame == p._safe_frame);
ON_ASSERT(_skylight == p._skylight);
ON_ASSERT(_sun == p._sun);
ON_ASSERT(_environments == p._environments);
}
return *this;
}
ON_3dmRenderSettings::~ON_3dmRenderSettings()
{
if (nullptr != m_private)
{
delete m_private;
m_private = nullptr;
}
}
ON_3dmRenderSettings::ON_3dmRenderSettings(const ON_3dmRenderSettings& rs)
{
operator = (rs);
}
ON_3dmRenderSettings& ON_3dmRenderSettings::operator = (const ON_3dmRenderSettings& rs)
{
if (this != &rs)
{
ON_Object::operator = (rs);
if (nullptr != rs.m_private)
{
if (nullptr == m_private)
m_private = new ON_3dmRenderSettingsPrivate;
*m_private = *rs.m_private;
}
else
{
if (nullptr != m_private)
{
delete m_private;
m_private = nullptr;
}
}
m_ambient_light = rs.m_ambient_light;
m_antialias_style = rs.m_antialias_style;
m_background_bitmap_filename = rs.m_background_bitmap_filename;
m_background_bottom_color = rs.m_background_bottom_color;
m_background_color = rs.m_background_color;
m_background_style = rs.m_background_style;
m_bCustomImageSize = rs.m_bCustomImageSize;
m_bDepthCue = rs.m_bDepthCue;
m_bFlatShade = rs.m_bFlatShade;
m_bForceViewportAspectRatio = rs.m_bForceViewportAspectRatio;
m_bRenderAnnotation = rs.m_bRenderAnnotation;
m_bRenderBackfaces = rs.m_bRenderBackfaces;
m_bRenderCurves = rs.m_bRenderCurves;
m_bRenderIsoparams = rs.m_bRenderIsoparams;
m_bRenderMeshEdges = rs.m_bRenderMeshEdges;
m_bRenderPoints = rs.m_bRenderPoints;
m_bScaleBackgroundToFit = rs.m_bScaleBackgroundToFit;
m_bTransparentBackground = rs.m_bTransparentBackground;
m_bUseHiddenLights = rs.m_bUseHiddenLights;
m_bUsesAmbientAttr = rs.m_bUsesAmbientAttr;
m_bUsesAnnotationAttr = rs.m_bUsesAnnotationAttr;
m_bUsesBackfaceAttr = rs.m_bUsesBackfaceAttr;
m_bUsesBackgroundAttr = rs.m_bUsesBackgroundAttr;
m_bUsesCurvesAttr = rs.m_bUsesCurvesAttr;
m_bUsesHiddenLightsAttr = rs.m_bUsesHiddenLightsAttr;
m_bUsesIsoparmsAttr = rs.m_bUsesIsoparmsAttr;
m_bUsesMeshEdgesAttr = rs.m_bUsesMeshEdgesAttr;
m_bUsesPointsAttr = rs.m_bUsesPointsAttr;
m_embedded_image_file_id = rs.m_embedded_image_file_id;
m_image_dpi = rs.m_image_dpi;
m_image_height = rs.m_image_height;
m_image_us = rs.m_image_us;
m_image_width = rs.m_image_width;
m_named_view = rs.m_named_view;
m_rendering_source = rs.m_rendering_source;
m_reserved1 = rs.m_reserved1;
m_reserved3 = rs.m_reserved3;
m_reserved4 = rs.m_reserved4;
m_reserved5 = rs.m_reserved5;
m_reserved6 = rs.m_reserved6;
m_reserved7 = rs.m_reserved7;
m_reserved8 = rs.m_reserved8;
m_shadowmap_height = rs.m_shadowmap_height;
m_shadowmap_offset = rs.m_shadowmap_offset;
m_shadowmap_style = rs.m_shadowmap_style;
m_shadowmap_width = rs.m_shadowmap_width;
m_snapshot = rs.m_snapshot;
m_specific_viewport = rs.m_specific_viewport;
}
return *this;
}
void ON_3dmRenderSettings::Dump( ON_TextLog& text_log ) const
{
text_log.Print("m_bCustomImageSize = %s\n",m_bCustomImageSize?"true":"false");
@@ -1215,7 +1455,6 @@ void ON_3dmRenderSettings::SetSpecificViewport(const ON_wString& s)
m_specific_viewport = s;
}
ON_wString ON_3dmRenderSettings::NamedView(void) const
{
return m_named_view;
@@ -1226,7 +1465,6 @@ void ON_3dmRenderSettings::SetNamedView(const ON_wString& s)
m_named_view = s;
}
ON_wString ON_3dmRenderSettings::Snapshot(void) const
{
return m_snapshot;
@@ -1249,12 +1487,167 @@ void ON_3dmRenderSettings::SetScaleBackgroundToFit( bool bScaleBackgroundToFit )
m_bScaleBackgroundToFit = bScaleBackgroundToFit?true:false;
}
ON_SafeFrame& ON_3dmRenderSettings::SafeFrame(void) const
{
if (nullptr == m_private)
m_private = new ON_3dmRenderSettingsPrivate;
return m_private->_safe_frame;
}
ON_GroundPlane& ON_3dmRenderSettings::GroundPlane(void) const
{
if (nullptr == m_private)
m_private = new ON_3dmRenderSettingsPrivate;
return m_private->_ground_plane;
}
ON_LinearWorkflow& ON_3dmRenderSettings::LinearWorkflow(void) const
{
if (nullptr == m_private)
m_private = new ON_3dmRenderSettingsPrivate;
return m_private->_linear_workflow;
}
ON_Skylight& ON_3dmRenderSettings::Skylight(void) const
{
if (nullptr == m_private)
m_private = new ON_3dmRenderSettingsPrivate;
return m_private->_skylight;
}
ON_Sun& ON_3dmRenderSettings::Sun(void) const
{
if (nullptr == m_private)
m_private = new ON_3dmRenderSettingsPrivate;
return m_private->_sun;
}
ON_Dithering& ON_3dmRenderSettings::Dithering(void) const
{
if (nullptr == m_private)
m_private = new ON_3dmRenderSettingsPrivate;
return m_private->_dithering;
}
ON_RenderChannels& ON_3dmRenderSettings::RenderChannels(void) const
{
if (nullptr == m_private)
m_private = new ON_3dmRenderSettingsPrivate;
return m_private->_render_channels;
}
ON_XMLNode& ON_3dmRenderSettings::RdkDocNode(void) const
{
if (nullptr == m_private)
m_private = new ON_3dmRenderSettingsPrivate;
if (m_private->_rdk_document_data.FirstChild() == nullptr)
{
// 16th November 2022 John Croudy, https://mcneel.myjetbrains.com/youtrack/issue/RH-71396
// The RDK document data is completely empty. This used to be filled by the RDK itself using
// the CRhRdkPropertyServer class. This worked until someone inside Rhino decided to copy a
// completely default ON_3dmRenderSettings over this one, whereupon the RDK document data got
// deleted instead of simply reverting to defaults. This code is here to fix that. The core
// property server code has been moved to ON_RdkDocumentDefaults.
ON_RdkDocumentDefaults dd(ON::VersionMajor(), ON_RdkDocumentDefaults::ValueSets::All);
dd.CopyDefaultsTo(m_private->_rdk_document_data);
}
return m_private->_rdk_document_data;
}
ON_UUID ON_3dmRenderSettings::BackgroundRenderEnvironment(void) const
{
if (nullptr == m_private)
m_private = new ON_3dmRenderSettingsPrivate;
return m_private->_environments.BackgroundRenderEnvironment();
}
void ON_3dmRenderSettings::SetBackgroundRenderEnvironment(const ON_UUID& id)
{
if (nullptr == m_private)
m_private = new ON_3dmRenderSettingsPrivate;
m_private->_environments.SetBackgroundRenderEnvironment(id);
}
bool ON_3dmRenderSettings::SkylightingRenderEnvironmentOverride(void) const
{
if (nullptr == m_private)
m_private = new ON_3dmRenderSettingsPrivate;
return m_private->_environments.SkylightingRenderEnvironmentOverride();
}
void ON_3dmRenderSettings::SetSkylightingRenderEnvironmentOverride(bool on)
{
if (nullptr == m_private)
m_private = new ON_3dmRenderSettingsPrivate;
m_private->_environments.SetSkylightingRenderEnvironmentOverride(on);
}
ON_UUID ON_3dmRenderSettings::SkylightingRenderEnvironment(void) const
{
if (nullptr == m_private)
m_private = new ON_3dmRenderSettingsPrivate;
return m_private->_environments.SkylightingRenderEnvironment();
}
void ON_3dmRenderSettings::SetSkylightingRenderEnvironment(const ON_UUID& id)
{
if (nullptr == m_private)
m_private = new ON_3dmRenderSettingsPrivate;
m_private->_environments.SetSkylightingRenderEnvironment(id);
}
bool ON_3dmRenderSettings::ReflectionRenderEnvironmentOverride(void) const
{
if (nullptr == m_private)
m_private = new ON_3dmRenderSettingsPrivate;
return m_private->_environments.ReflectionRenderEnvironmentOverride();
}
void ON_3dmRenderSettings::SetReflectionRenderEnvironmentOverride(bool on)
{
if (nullptr == m_private)
m_private = new ON_3dmRenderSettingsPrivate;
m_private->_environments.SetReflectionRenderEnvironmentOverride(on);
}
ON_UUID ON_3dmRenderSettings::ReflectionRenderEnvironment(void) const
{
if (nullptr == m_private)
m_private = new ON_3dmRenderSettingsPrivate;
return m_private->_environments.ReflectionRenderEnvironment();
}
void ON_3dmRenderSettings::SetReflectionRenderEnvironment(const ON_UUID& id)
{
if (nullptr == m_private)
m_private = new ON_3dmRenderSettingsPrivate;
m_private->_environments.SetReflectionRenderEnvironment(id);
}
//////////////////////////////////////////////////////////////////////////////////////////
//
// ON_3dmAnnotationSettings
//
void ON_3dmAnnotationSettings::Dump( ON_TextLog& text_log ) const
{
// TODO
@@ -1369,8 +1762,8 @@ bool ON_3dmAnnotationSettings::Read( ON_BinaryArchive& file )
if (bV6orLater)
{
// files that do not contain m_bEnableAnnotationScaling,
// set m_bEnableAnnotationScaling = false so the display
// image does not change.
// set m_bEnableAnnotationScaling = false so the display
// image does not change.
m_b_V5_EnableAnnotationScaling = 1;
// files that do not contain m_bEnableModelSpaceAnnotationScaling,