// Copyright 2013 Trimble Inc. All rights reserved. /** * @file * @brief Interfaces for SURenderingOptionsRef. */ #ifndef SKETCHUP_MODEL_RENDERING_OPTIONS_H_ #define SKETCHUP_MODEL_RENDERING_OPTIONS_H_ #include #include #include #include #ifdef __cplusplus extern "C" { #endif /** @struct SURenderingOptionsRef @brief Used to get and set values in a rendering options object. */ /** @brief Gets the number of available rendering options keys. @since SketchUp 2017, API 5.0 @param[in] rendering_options The rendering options object. @param[out] count The number of keys available. @related SURenderingOptionsRef @return - \ref SU_ERROR_NONE on success - \ref SU_ERROR_INVALID_INPUT if rendering_options is not valid - \ref SU_ERROR_NULL_POINTER_OUTPUT if count is NULL */ SU_RESULT SURenderingOptionsGetNumKeys(SURenderingOptionsRef rendering_options, size_t* count); /** @brief Retrieves keys associated with the rendering options object. @since SketchUp 2017, API 5.0 @param[in] rendering_options The rendering options object. @param[in] len The number of keys to retrieve. @param[out] keys The keys retrieved. @param[out] count The number of keys retrieved. @related SURenderingOptionsRef @return - \ref SU_ERROR_NONE on success - \ref SU_ERROR_INVALID_INPUT if rendering_options is not a valid object - \ref SU_ERROR_NULL_POINTER_OUTPUT if keys or count is NULL - \ref SU_ERROR_INVALID_OUTPUT if any of the strings in the keys array are invalid. */ SU_RESULT SURenderingOptionsGetKeys( SURenderingOptionsRef rendering_options, size_t len, SUStringRef keys[], size_t* count); /** @brief Sets values in a rendering options object. @param[in] rendering_options The rendering options object. @param[in] key The key. Assumed to be UTF-8 encoded. @param[in] value_in The value used to set the option. @related SURenderingOptionsRef @return - \ref SU_ERROR_NONE on success - \ref SU_ERROR_INVALID_INPUT if rendering_options or value_in is an invalid object - \ref SU_ERROR_NULL_POINTER_INPUT if key is NULL */ SU_RESULT SURenderingOptionsSetValue( SURenderingOptionsRef rendering_options, const char* key, SUTypedValueRef value_in); /** @brief Retrieves the value of a given rendering option. @param[in] rendering_options The rendering options object. @param[in] key The key. Assumed to be UTF-8 encoded. @param[out] value_out The value retrieved. @related SURenderingOptionsRef @return - \ref SU_ERROR_NONE on success - \ref SU_ERROR_INVALID_INPUT if rendering_options is an invalid object - \ref SU_ERROR_NULL_POINTER_INPUT if key is NULL - \ref SU_ERROR_INVALID_OUTPUT if value_out is an invalid object - \ref SU_ERROR_NULL_POINTER_OUTPUT if value_out is NULL The breakdown of rendering options and value types is shown in the table below. Rendering Option | Value Type | Since ---------------------------- | ---------------------------- | ------------------------- `"BackgroundColor"` | \ref SUTypedValueType_Color |   `"BandColor"` | \ref SUTypedValueType_Color |   `"ConstructionColor"` | \ref SUTypedValueType_Color |   `"DepthQueWidth"` | \ref SUTypedValueType_Int32 |   `"DisplayColorByLayer"` | \ref SUTypedValueType_Bool |   `"DisplayDims"` | \ref SUTypedValueType_Bool |   `"DisplayFog"` | \ref SUTypedValueType_Bool |   `"DisplayInstanceAxes"` | \ref SUTypedValueType_Bool |   `"DisplaySectionPlanes"` | \ref SUTypedValueType_Bool | SketchUp 2014, API 2.0 `"DisplaySectionCuts"` | \ref SUTypedValueType_Bool | SketchUp 2015, API 3.0 `"DisplaySketchAxes"` | \ref SUTypedValueType_Bool |   `"DisplayText"` | \ref SUTypedValueType_Bool |   `"DisplayWatermarks"` | \ref SUTypedValueType_Bool |   `"DrawBackEdges"` | \ref SUTypedValueType_Bool | SketchUp 2015, API 3.0 `"DrawDepthQue"` | \ref SUTypedValueType_Bool |   `"DrawGround"` | \ref SUTypedValueType_Bool |   `"DrawHidden"` | \ref SUTypedValueType_Bool |   `"DrawHiddenGeometry"` | \ref SUTypedValueType_Bool | SketchUp 2020, API 8.0 `"DrawHiddenObjects"` | \ref SUTypedValueType_Bool | SketchUp 2020, API 8.0 `"DrawHorizon"` | \ref SUTypedValueType_Bool |   `"DrawLineEnds"` | \ref SUTypedValueType_Bool |   `"DrawProfilesOnly"` | \ref SUTypedValueType_Bool |   `"DrawSilhouettes"` | \ref SUTypedValueType_Bool |   `"DrawUnderground"` | \ref SUTypedValueType_Bool |   `"EdgeColorMode"` | \ref SUTypedValueType_Int32 |   `"EdgeDisplayMode"` | \ref SUTypedValueType_Int32 |   `"EdgeType"` | \ref SUTypedValueType_Int32 |   `"ExtendLines"` | \ref SUTypedValueType_Bool |   `"FaceBackColor"` | \ref SUTypedValueType_Color |   `"FaceFrontColor"` | \ref SUTypedValueType_Color |   `"FogColor"` | \ref SUTypedValueType_Color |   `"FogEndDist"` | \ref SUTypedValueType_Double |   `"FogStartDist"` | \ref SUTypedValueType_Double |   `"FogUseBkColor"` | \ref SUTypedValueType_Bool |   `"ForegroundColor"` | \ref SUTypedValueType_Color |   `"GroundColor"` | \ref SUTypedValueType_Color |   `"GroundTransparency"` | \ref SUTypedValueType_Int32 |   `"HideConstructionGeometry"` | \ref SUTypedValueType_Bool |   `"HighlightColor"` | \ref SUTypedValueType_Color |   `"HorizonColor"` | \ref SUTypedValueType_Color |   `"InactiveFade"` | \ref SUTypedValueType_Double |   `"InactiveHidden"` | \ref SUTypedValueType_Bool |   `"InstanceFade"` | \ref SUTypedValueType_Double |   `"InstanceHidden"` | \ref SUTypedValueType_Bool |   `"JitterEdges"` | \ref SUTypedValueType_Bool |   `"LineEndWidth"` | \ref SUTypedValueType_Int32 |   `"LineExtension"` | \ref SUTypedValueType_Int32 |   `"LockedColor"` | \ref SUTypedValueType_Color |   `"MaterialTransparency"` | \ref SUTypedValueType_Bool |   `"ModelTransparency"` | \ref SUTypedValueType_Bool |   `"RenderMode"` | \ref SUTypedValueType_Int32 |   `"SectionActiveColor"` | \ref SUTypedValueType_Color |   `"SectionCutDrawEdges"` | \ref SUTypedValueType_Bool | SketchUp 2015, API 3.0 `"SectionCutFilled"` | \ref SUTypedValueType_Bool | SketchUp 2018, API 6.0 `"SectionCutWidth"` | \ref SUTypedValueType_Int32 |   `"SectionDefaultCutColor"` | \ref SUTypedValueType_Color |   `"SectionDefaultFillColor"` | \ref SUTypedValueType_Color | SketchUp 2018, API 6.0 `"SectionInactiveColor"` | \ref SUTypedValueType_Color |   `"ShowViewName"` | \ref SUTypedValueType_Bool |   `"SilhouetteWidth"` | \ref SUTypedValueType_Int32 |   `"SkyColor"` | \ref SUTypedValueType_Color |   `"Texture"` | \ref SUTypedValueType_Bool |   `"TransparencySort"` | \ref SUTypedValueType_Int32 |   Some of the options map to enumerated values, as shown in the table below. Option | Value | Meaning | Since ------------------ | ----- | --------------------- | -------------------------- \b EdgeColorMode | `0` | ObjectColor |     | `1` | ForegroundColor |     | `2` | DirectionColor |   \b EdgeDisplayMode | `0` | EdgeDisplayNone |     | `1` | EdgeDisplayAll |     | `2` | EdgeDisplayStandalone |   \b RenderMode | `0` | RenderWireframe |     | `1` | RenderHidden |     | `2` | RenderFlat |     | `3` | RenderSmooth |     | `4` | RenderTextureObsolete |     | `5` | RenderNoMaterials |     | `6` | RenderPhysicallyBased | SketchUp 2025.0, API 13.0 \b EdgeType | `0` | EdgeStandard |     | `1` | EdgeNPR |   @note The rendering option FaceColorMode was removed in SketchUp 2019.1. */ SU_RESULT SURenderingOptionsGetValue( SURenderingOptionsRef rendering_options, const char* key, SUTypedValueRef* value_out); #ifdef __cplusplus } #endif #endif // SKETCHUP_MODEL_RENDERING_OPTIONS_H_