.. role:: raw-html(raw)
    :format: html

.. |supported| image:: ../../_assets/images/green_circle.png
   
.. |na| image:: ../../_assets/images/grey_circle.png
   
.. |unsupported| image:: ../../_assets/images/red_circle.png
   
.. |partialsupport| image:: ../../_assets/images/gray_green_circle.png

.. _toc_2300:

Major Release 23.00
-------------------


Library compatibility information
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. only:: not spatial

  +--------------------+-----------+-------------+---------------+---------------+------------------------------------------------------------------------------------+
  | Library name       | Version   | Windows     | Linux         | OS X          | Notes                                                                              |
  +====================+===========+=============+===============+===============+====================================================================================+
  | DGN Direct         | 4.2       | |supported| | |unsupported| | |unsupported| |                                                                                    |
  +--------------------+-----------+-------------+---------------+---------------+------------------------------------------------------------------------------------+
  | HOOPS Communicator | 2017 SP2  | |supported| | |unsupported| | |unsupported| |                                                                                    |
  +--------------------+-----------+-------------+---------------+---------------+------------------------------------------------------------------------------------+
  | HOOPS Exchange     | 2018      | |supported| | |supported|   | |unsupported| |                                                                                    |
  +--------------------+-----------+-------------+---------------+---------------+------------------------------------------------------------------------------------+
  | HOOPS Publish      | 2018      | |supported| | |supported|   | |unsupported| |                                                                                    |
  +--------------------+-----------+-------------+---------------+---------------+------------------------------------------------------------------------------------+
  | .NET Framework     | 4.0       | |supported| | |unsupported| | |unsupported| | v4.5 required for wpf_image                                                        |
  |                    |           |             |               |               | v4.5 required for WPF over Remote Desktop                                          |
  +--------------------+-----------+-------------+---------------+---------------+------------------------------------------------------------------------------------+
  | Parasolid          | 29.1      | |supported| | |unsupported| | |unsupported| |                                                                                    |
  +--------------------+-----------+-------------+---------------+---------------+------------------------------------------------------------------------------------+
  | Qt                 | 5.6       | |supported| | |supported|   | |unsupported| | Please note, Visualize is compatible with Qt 5.4 on OSX                            |
  +--------------------+-----------+-------------+---------------+---------------+------------------------------------------------------------------------------------+
  | RealDWG            | 2018      | |supported| | |unsupported| | |unsupported| | RealDWG 2018 is compatible with Visual Studio 2015 Update 3 and Visual Studio 2017 |
  +--------------------+-----------+-------------+---------------+---------------+------------------------------------------------------------------------------------+
  | SketchUp           | 2015      | |supported| | |unsupported| | |unsupported| |                                                                                    |
  +--------------------+-----------+-------------+---------------+---------------+------------------------------------------------------------------------------------+

.. only:: spatial

  +----------------+-----------+-------------+---------------+---------------+------------------------------------------------------------------------------------+
  | Library name   | Version   | Windows     | Linux         | OS X          | Notes                                                                              |
  +================+===========+=============+===============+===============+====================================================================================+
  | DGN Direct     | 4.2       | |supported| | |unsupported| | |unsupported| |                                                                                    |
  +----------------+-----------+-------------+---------------+---------------+------------------------------------------------------------------------------------+
  | .NET Framework | 4.0       | |supported| | |unsupported| | |unsupported| | v4.5 required for wpf_image                                                        |
  |                |           |             |               |               | v4.5 required for WPF over Remote Desktop                                          |
  +----------------+-----------+-------------+---------------+---------------+------------------------------------------------------------------------------------+
  | Qt             | 5.6       | |supported| | |supported|   | |unsupported| | Please note, Visualize is compatible with Qt 5.4 on OSX                            |
  +----------------+-----------+-------------+---------------+---------------+------------------------------------------------------------------------------------+
  | RealDWG        | 2018      | |supported| | |unsupported| | |unsupported| | RealDWG 2018 is compatible with Visual Studio 2015 Update 3 and Visual Studio 2017 |
  +----------------+-----------+-------------+---------------+---------------+------------------------------------------------------------------------------------+
  | SketchUp       | 2015      | |supported| | |unsupported| | |unsupported| |                                                                                    |
  +----------------+-----------+-------------+---------------+---------------+------------------------------------------------------------------------------------+

*Enhancements*
^^^^^^^^^^^^^^

**%Database key status improvements.** The internal implementation for generating database keys has been altered to improve the quality of information returned by ``Show_Key_Status()``. Users can now more easily determine whether a particular key has been deleted. Please see the entry in the ``Show_Key_Status`` "API Reference" for additional information, including new return values and the theoretical limits for key exhaustion for 32-bit and 64-bit applications.

The internal tracking for this feature requires some extra computations for key creation and lookup. These computations should have negligible effects on performance in typical applications, even if they handle very large and complex data sets. Updates and screen draw performance will not be affected. However, scenarios where an extremely large number of keys are created and accessed may show a slight performance drop.

**Static %Model Improvements.** In order to make the static model more flexible, Visualize now avoids complete static model regeneration in favor of patching portions of the static model in some cases. See the :doc:`Static Model Programming guide </prog_guide/3dgs/07_2_performance_segments>` for more information. When used effectively, Static Model offers a significant performance benefit. We strongly encourage Partners to use Static Model in their applications.

**Lines in mixed coordinates spaces.** Users can insert polylines with points in different coordinate systems. Use the ``Set_Geometry_Options()`` function to set the ``Set_Geometry_Options_coordinate_systems`` option to a list of coordinate systems corresponding to each point in the polyline.

**Conditional selections.** It is now possible to add conditions to selections. See ``Compute_Selection()`` for more information.

**Selection sorting.** Users may now choose how selection results are sorted by specifying the sorting method with the ``Set_Heuristics_selection_sorting`` Heuristic. See the ``Set_Heuristics_selection_sorting`` for the new options.

**New search function that returns original keys.** The ``Find_Contents_Original_Key()`` function returns the original key values for the search results. Original keys are safe to use regardless of which segment is open because, unlike locally renumbered keys, they are unambiguous and not dependent on context.

**Increased control over attribute flushing.** Attributes can now be flushed with more granularity. For example, calling Flush_Contents(mySegment, "color = faces") will now flush color attributes on faces (and not on other types of geometry). Please see ``Flush_Contents()`` for more information.

**Backface coloring for Point Clouds.** You can set the back facing color for point clouds with Eye Dome Lighting by setting the "eye dome lighting back color" rendering option. Although Eye Dome Lighting does not require normals for each point, "eye dome lighting back color" requires them.

**FreeType update.** Visualize internally uses Freetype v2.8.

**Texture support in DWG.** Through the RealDWG HIO component, Visualize now supports textures from image files. Please see section 4.0 of the :doc:`RealDWG Programming Guide </prog_guide/hio/HIO_RealDWGIntegration>` section for more information.

*Functional changes*
^^^^^^^^^^^^^^^^^^^^

**Changes in Visual Studio support.** Visual Studio 2017 is now supported. Visual Studio 2013 is no longer supported.

**Changes in Linux support.** The CentOS and Ubuntu Linux packages have been consolidated into a single package using glibc 2.12.

**Important: OpenGL is not supported for screen rendering.** The legacy fixed-function OpenGL driver is no longer supported as a high-performance screen driver. The driver name "opengl" will now use the `"opengl2" <device_guide.html#opengl2>`__ shader driver. For offscreen rendering, applications can use the legacy fixed-function OpenGL driver using the driver name `"opengl1_deprecated" <device_guide.html#opengl1_deprecated>`__.

**DX9 driver deprecated.** The `DirectX 9 <device_guide.html#dx9>`__ driver has been deprecated. It will be discontinued in a future release. We strongly encourage partners to use a newer driver, such as `DX11 <device_guide.html#dx11>`__.

**Clip region changes.** Previously, ``PShow_Net_Clip_Region()`` returned the clip region closest to the leaf of the key path provided to the function. Now, ``PShow_Net_Clip_Region`` returns all the clip regions found on the key path passed to the function. Please the ``PShow_Net_Clip_Region`` "API Reference" for more details.

**Calculation of bounding boxes.** You can ask Visualize to compute a bounding box or a bounding sphere for a section of the tree graph. When performing this calculation, Visualize will only include visible geometry, so that invisible geometry does not contribute to the bounding box. Prior to this release, named styles containing visibility attribute settings were ignored during this computation, resulting in a bounding that included invisible geometry.

As a simple example, before this fix, if you had a scene made up of a cube, and set it to be invisible through a named style, and then asked for bounding, you would get a non-zero result because Visualize would consider the cube as visible. As of this release, you will now receive an empty bounding box, because Visualize recognizes that the cube was made invisible by a named style.

Additionally, new methods have been added for retrieving a bounding circumsphere or circumcuboid using a keypath: ``Filter_Circumsphere_By_Path()`` and ``Filter_Circumcuboid_By_Path().``

**Change to DGN environment variable.** For users of the HIO component for DGN, the environment variable pointing to the DGNDirect installation has changed from TEIGHA_3_08_01 to DGN_TEIGHA_DIR. Please see the :doc:`Programming Guide </prog_guide/hio/HIO_DGNIntegration>` for more info on DGN integration.

--------------
