Release Notes
Visualize HPS 2017 Service Pack 2 Update 1
NOTE: The release notes do not include bug fixes. For a list of bug fixes, please see this page.Library compatibility information:
Library name | Version | Windows | Linux | OS X | Android | iOS | Notes |
---|---|---|---|---|---|---|---|
HOOPS Exchange | 2017 SP2 | ||||||
HOOPS Publish | 2017 SP2 | ||||||
.NET Framework | 4.0 | 4.5 required when using D3D_IMAGE_CANVAS | |||||
Parasolid | 29.1 | ||||||
RealDWG | 2018 | RealDWG 2018 works with Visual Studio 2015 There is no support for RealDWG in Visual Studio 2013 | |||||
Qt | 5.6 | ||||||
SketchUp | 2015 | ||||||
wxWidgets | 3.1 | Linux and OS X use wxWidgets 3.0 |
HOOPS Visualize 2017 Service Pack 2 Update 1 is a bug fix release only.
Visualize HPS 2017 Service Pack 2
NOTE: The release notes do not include bug fixes. For a list of bug fixes, please see this page.Library compatibility information:
Library name | Version | Windows | Linux | OS X | Android | iOS | Notes |
---|---|---|---|---|---|---|---|
HOOPS Exchange | 2017 SP2 | ||||||
HOOPS Publish | 2017 SP2 | ||||||
.NET Framework | 4.0 | 4.5 required when using D3D_IMAGE_CANVAS | |||||
Parasolid | 29.1 | ||||||
RealDWG | 2018 | RealDWG 2018 works with Visual Studio 2015 There is no support for RealDWG in Visual Studio 2013 | |||||
Qt | 5.6 | ||||||
SketchUp | 2015 | ||||||
wxWidgets | 3.1 | Linux and OS X use wxWidgets 3.0 |
Packaging Changes
- Directory names have changed: HOOPS_Visualize_2017_SP2_Win_vc12 has become HOOPS_Visualize_2017_SP2_Win_v120 and HOOPS_Visualize_2017_SP2_Win_vc14 has become HOOPS_Visualize_2017_SP2_Win_v140.
- A new sandbox for point cloud support is now available in samples->mfc_ooc_sandbox. This sandbox is an MFC-based application for showcasing the OOC feature. OOC is a Preview Release and may change in the 2018 release.
Enhancements
- Out-of-core point cloud support is now available as a preview release for 32-bit/64-bit Windows applications. Please see the Programming Guide for more information.
- Export to 3MF is now supported via the Exchange sprocket. This new implementation is largely modeled on HPS::Exchange::File::ExportPRC and similarly allows export of HPS::KeyPath objects. As with the ExportPRC interface, if the user wants to export a CADModel and key paths, the key paths can be specified via the Export3MFOptionsKit::SetAdditionalKeyPaths(). Export3MF variants now return an HPS::Exchange::ExportNotifier as the process of building up the A3DAsmModelFile is cancellable. Please see HPS::Exchange::File::Export3MF and HPS::Exchange::Export3MFOptionsKit.
- HTML Export is now available for 64-bit Windows applications, either through the HTML sprocket or the Publish sprocket. For more information about HTML export, please see the following Programming Guide sections:
- HPS::Exchange::MeasurementOperator now handles touch events with new OnTouchDown(), OnTouchUp(), and OnTouchMove() handlers.
- It's now possible to modify anti-aliasing settings on the fly. See this function in the HPS::StandAloneWindowOptionsControl and HPS::StandAloneWindowOptionsKit classes:
- A new image export option has been added for setting a transparent background:
- PRC Export: Geometry References and Conditional Includes are now supported.
- 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. For more details, please see the Performance Considerations section of programming guide.
- Support for sub-geometry attributes has been expanded. For ShellKey, ShellKit, MeshKey, MeshKit, it's now possible to set edge visibilities and edge colors. For CylinderKey and CylinderKit, it's now possible to set vertex colors.
-
Memory usage has been reduced for two-point lines; the impact of this change will only be noticeable in scenes that contain large numbers of two-point lines.
-
For Windows applications, there is a new API for exporting to an EMF file:
- For Windows applications, there is a new API for exporting to the clipboard:
- In HPS::Exchange::CADModel, a new member function SetAllPMIInFront() forces all of the PMI in the CADModel to be rendered in front of the other geometry.
- Simulator targets are now included in the Android Package.
- In the Exchange Sprocket, metadata now reports units for Product Occurrences (previously only units for the CADModel were available). In the HOOPS Demo Viewer, these units are visible in the Properties pane.
Functional Changes
- In the HPS::SelectionOptionsKit class, SetScope() has a new optional parameter, in_scope_only, which offers added control over which elements are included in a selection:
- The syntax for ShowScope has changed; an extra boolean parameter is now required:
- New unset functions added to HPS::SelectionOptionsControl.
- Set/Unset/Show functions for vertex decimation and vertex randomization have been added to the HPS::DrawingAttributeKit and HPS::DrawingAttributeControl.
- Visualize has been updated to use RealDWG 2018.
- The function UnsetResourceMonitor() has been added to the HPS::DebuggingControl and HPS::DebuggingKit.
- OperatorControl functions that take raw Operator pointers as parameters have been deprecated. Please use these Set() and Push() functions with an OperatorPtr parameter. These are the functions that have been deprecated:
- Also in the HPS::SelectionOptionsKit, it's now possible to apply conditions during a selection operation:
Upcoming Changes
Starting with the 2018 release, the following changes will be in effect:
- Support for Visual Studio 2013 will be discontinued, and support for Visual Studio 2017 will be added.
- Ubuntu and CentOS packages will be consolidated into a single Linux package.
-
CMake will be required to build included source.
Visualize HPS 2017 Service Pack 1
NOTE: The release notes do not include bug fixes. For a list of bug fixes, please see this page.Library compatibility information:
Library name | Version | Windows | Linux | OS X | Android | iOS | Notes |
---|---|---|---|---|---|---|---|
HOOPS Exchange | 2017 SP1 U1 | ||||||
HOOPS Publish | 2017 SP1 U1 | ||||||
.NET Framework | 4.0 | 4.5 required when using D3D_IMAGE_CANVAS | |||||
Parasolid | 29.1 | ||||||
RealDWG | 2017 | RealDWG 2017 works with Visual Studio 2015 There is no support for RealDWG in Visual Studio 2013 | |||||
Qt | 5.6 | ||||||
SketchUp | 2015 | ||||||
wxWidgets | 3.1 | Linux and OS X use wxWidgets 3.0 |
Functional Changes
- Starting with this release, the header file visualize_license.h has been replaced by hoops_license.h. Please replace your header files when upgrading your license. A new header file can be generated on the Developer Zone. By the 2018 release, licenses for all HOOPS products will be replaced with this single unified license.
Enhancements
- PRC, STL, VRML and U3D Import: HOOPS Visualize users now have access to a limited license of HOOPS Exchange that provides the ability to import these popular formats. Once you download and install HOOPS Exchange, you will be able to easily import these formats via the Sprocket Exchange component.
- HTML Export via HOOPS Publish: HOOPS Visualize licensees of HOOPS Publish Advanced now get high-level access to the HTML export capabilities that were added to HOOPS Publish. Direct HTML export without requiring HOOPS Publish will be added in the next release of HOOPS Visualize. This feature is only available on 64-bit versions of Visualize. This functionality is exposed in the File class through the ExportHTML() function.
-
Visualize now supports exporting PDFs with the Parts List widget through the Publish Sprocket. This feature requires the TableToPDF Publish add-on and a Publish Advanced license.
Click to see more info on the new Parts List feature.
The following restrictions apply to Parts List feature:- The imported model must be an Exchange file
- The Publish annotation must use a CADModel source
- The Publish annotation must be in the PRC format
Parts List export is exposed through the AnnotationKit class:
- AnnotationKit & SetPartsList(size_t in_rows, IntRectangle const & in_location, UTF8Array const & in_headers = UTF8Array(), FloatArray const & in_columns = FloatArray(), TextFieldKit const & in_text_style = TextFieldKit(), TextFieldKit const & in_header_text_style = TextFieldKit())
- AnnotationKit & UnsetPartsList()
- ShowPartsList(size_t & out_rows, IntRectangle & out_location, UTF8Array & out_headers, FloatArray & out_columns, TextFieldKit & out_text_style, TextFieldKit & out_header_text_style) const
- A new member has been added to the UpdateInfo object that indicates whether a static model has been regenerated during a Window update. Using a static model in Visualize can dramatically improve performance, especially with large models. For more information on how to implement a static model in your application, please see the updated Programming Guide entry on static models and this new tutorial.
- Through our Exchange sprocket, you can now export different versions of JT files with the ExportJTOptionsKit by using the SetVersion() function.
- Back coloring for Point Clouds is now available. New functions have been added to the VisualEffectsKit and VisualEffectsControl classes.
Click to see the functions for the Eye Dome Lighting Back Color feature.
- SetEyeDomeLightingBackColor(bool in_state, RGBColor const &in_color)
- ShowEyeDomeLightingBackColor(bool &out_state, RGBColor &out_color) const
- UnsetEyeDomeLightingBackColor()
- SetEyeDomeLightingBackColor(bool in_state, RGBColor const &in_color)
- ShowEyeDomeLightingBackColor(bool& out_state, RGBColor& out_color) const
- UnsetEyeDomeLightingBackColor()
- In the HPS::WindowInfoControl object, it's now possible to see the name of the GPU with the HPS::WindowInfoControl::ShowGPUName() function.
- Additional operator modifier keys are now supported in the ModifierKeys class.
Miscellaneous
- HMF-to-HSF command line utility program: A simple command line utility program has been created to enable developers to convert HMF files to HSF. HMFs are debugging files that are used by HOOPS Visualize:3DF. This new utility program is provided to enable developers migrating from HOOPS Visualize:3DF to HOOPS Visualize.
-
The android_eclipse_sandbox project has been removed. Please note, the android_sandbox project is still included in the package for Android developers using Android Studio. For up-to-date information about building Android applications with Visualize, please see the Getting Started section.
- STL models now use flat shading in all cases.
Visualize HPS 2017 Update 1
NOTE: The release notes do not include bug fixes. For a list of bug fixes, please see this page.Library compatibility information:
Library name Version Windows Linux OS X Android iOS Notes HOOPS Exchange 2017 U1 HOOPS Publish 2017 U1 .NET Framework 4.0 4.5 required when using D3D_IMAGE_CANVAS Parasolid 29.1 RealDWG 2017 RealDWG 2017 works with Visual Studio 2015
There is no support for RealDWG in Visual Studio 2013Qt 5.6 SketchUp 2015 wxWidgets 3.1 Linux and OS X use wxWidgets 3.0
HOOPS Visualize 2017 Update 1 is a bug-fix release only.
Visualize HPS 2017
NOTE: The release notes do not include bug fixes. For a list of bug fixes, please see this page.Library compatibility information:
Library name Version Windows Linux OS X Android iOS Notes HOOPS Exchange 2017 HOOPS Publish 2017 .NET Framework 4.0 4.5 required when using D3D_IMAGE_CANVAS Parasolid 29.1 RealDWG 2017 RealDWG 2017 works with Visual Studio 2015
There is no support for RealDWG in Visual Studio 2013Qt 5.6 SketchUp 2015 wxWidgets 3.1 Linux and OS X use wxWidgets 3.0 Enhancements
- Support for code generation to make it easier to create bug reports. A codegen_test project is now included in HPS packages. Please see the troubleshooting page for more information.
- Support for Xamarin on both iOS and Android. Please see the Getting Started section for more information.
- Improvements to anti-aliasing capabilities. Depending on usage, expect 30%–70% performance increase when using depth effects with anti-aliasing (eye dome lighting, ambient occlusion, fast silhouettes, external silhouettes, depth of field). Available with DX11 and OpenGL 2 (desktop) when supported.
- New Camera Walk Operator.
-
HOOPS Exchange sprocket enhancements:
-
A new function has been added to HPS::Exchange::ImportOptionsKit that allows users to specify how many concurrent processes to use when importing a file. Using more processes speeds up the import of assemblies made up of multiple files.
This new feature only affects the following file formats: CatiaV5, NX (Unigraphics), JT, Solidworks, Creo (Pro/E).
This option has also been exposed in both the HOOPS Demo Viewer and the Parasolid Demo Viewer. When importing a file in the HDV or PDV, choose "Show Import Options". In the "General" tab, you will be able to set the number of processes to be used for that import. - Support for iOS and Android platforms
- Starting with HOOPS Exchange 2017, users will be able to export data imported from Exchange to the 3MF file format. To do so, use the newly added function HPS::Exchange::File::Export3MF.
- Improvements around the import of screen-anchored markups
- Component deletion performance has been improved
- There is a new Exchange import option, HPS::Exchange::ImportOptionsKit::SetGeometryDefaultColor, which allows a user to specify a default color for geometry that has no color specified. If the option is not specified for an import, it will default to gray.
-
A new function has been added to HPS::Exchange::ImportOptionsKit that allows users to specify how many concurrent processes to use when importing a file. Using more processes speeds up the import of assemblies made up of multiple files.
-
HOOPS Exchange-Parasolid sprocket enhancements:
- Improved assembly management for Parasolid users
- Exposed interface to multi-process translation
-
The look of the manipulator handles has changed. This includes the default sizes and colors, and new types of handles have been added. Users can still customize the appearance of manipulator handles.
Click to see more info on new manipulator handles.
The two new types of handles are the plane handles and the center handle. The plane handles allow users to translate geometry anywhere on the plane represented by the selected handle. The center handle allows users to translate geometry anywhere on the view plane.
In addition, users can now turn on or off different sets of handles. This is accomplished with the newly added AddHandles and RemoveHandles functions of the HandlesOperator.
Other improvements:
- Fixed how trailing geometry is calculated
- Reorganization of the operator's functions
- Performance enhancements
Some of the limitations of this operator are still present, for example:
- When users load Exchange or Parasolid files and then modify their geometry with the Handles Operator, the underlying PRC and Parasolid geometry is not modified.
- The segment and component structure can be changed by the operator. This happens when a user moves a particular instance of geometry that is referenced in multiple places. The operator will comply, but doing so modifies the segment and/or component structure.
- The iOS package has been optimized, significantly reducing its size.
- New functionality has been added to set a default camera when exporting HSF files using an HPS::Stream::ExportOptionsKit. The function SetDefaultCamera() can be used to set a default camera. This functionality is also available in the HOOPS Demo Viewer; to save the current camera in HDV, select "Save Current Camera" in the Export Options dialog box.
- The default appearance of the axis triad has been updated.
Functional Changes
-
Support for 32-bit Linux platforms has been discontinued.
- Support for VC11 and Visual Studio 2012 has been discontinued.
- For the Linux and Android platforms, the gcc compiler has been upgraded to 4.8.2.
-
The ambient occlusion algorithm was overhauled. As a result, certain function signatures in the PostProcessEffectsControl and PostProcessEffectsKit have changed.
Click to see the ambient occlusion functions that have changed.
The following functions have been updated:
- PostProcessEffectsControl& HPS::PostProcessEffectsControl::SetAmbientOcclusion (bool in_state, float in_strength = 1.0f, PostProcessEffects::AmbientOcclusion::Quality in_quality = PostProcessEffects::AmbientOcclusion::Quality::Fastest)
- PostProcessEffectsControl& HPS::PostProcessEffectsControl::SetAmbientOcclusion (float in_strength, PostProcessEffects::AmbientOcclusion::Quality in_quality)
- bool HPS::PostProcessEffectsControl::ShowAmbientOcclusion (bool & out_state, float & out_strength, PostProcessEffects::AmbientOcclusion::Quality & out_quality) const
- PostProcessEffectsKit& HPS::PostProcessEffectsKit::SetAmbientOcclusion (bool in_state, float in_strength = 1.0f, PostProcessEffects::AmbientOcclusion::Quality in_quality = PostProcessEffects::AmbientOcclusion::Quality::Fastest)
- PostProcessEffectsKit& HPS::PostProcessEffectsKit::SetAmbientOcclusion (float in_strength, PostProcessEffects::AmbientOcclusion::Quality in_quality)
- bool HPS::PostProcessEffectsKit::ShowAmbientOcclusion (bool & out_state, float & out_strength, PostProcessEffects::AmbientOcclusion::Quality & out_quality) const
These functions now include a new radius parameter, which is a multiplier for the screen-space search radius that gives users more control over the output of the ambient occlusion algorithm:
- PostProcessEffectsControl& HPS::PostProcessEffectsControl::SetAmbientOcclusion(bool in_state, float in_strength = 1.0f, PostProcessEffects::AmbientOcclusion::Quality in_quality = PostProcessEffects::AmbientOcclusion::Quality::Fastest, float in_radius = 1.0f)
- PostProcessEffectsControl& HPS::PostProcessEffectsControl::SetAmbientOcclusion(float in_strength, PostProcessEffects::AmbientOcclusion::Quality in_quality, float in_radius)
- bool HPS::PostProcessEffectsControl::ShowAmbientOcclusion(bool & out_state, float & out_strength, PostProcessEffects::AmbientOcclusion::Quality & out_quality, float & out_radius) const
- PostProcessEffectsKit& HPS::PostProcessEffectsKit::SetAmbientOcclusion(bool in_state, float in_strength = 1.0f, PostProcessEffects::AmbientOcclusion::Quality in_quality = PostProcessEffects::AmbientOcclusion::Quality::Fastest, float in_radius = 1.0f)
- PostProcessEffectsKit& HPS::PostProcessEffectsKit::SetAmbientOcclusion(float in_strength, PostProcessEffects::AmbientOcclusion::Quality in_quality, float in_radius)
- bool HPS::PostProcessEffectsKit::ShowAmbientOcclusion(bool & out_state, float & out_strength, PostProcessEffects::AmbientOcclusion::Quality & out_quality, float & out_radius) const
The new algorithm should provide more visually appealing results. Please note, this requires DirectX Feature Level 11_0 or OpenGL 3.2 level hardware (no dx9 or mobile support); otherwise, HPS defaults back to its previous ambient occlusion algorithm.
Also in the PostProcessEffectsKit and PostProcessEffectsControl classes, a new scaling factor called "World Scale" can be used by our post-process algorithms, such as ambient occlusion.
Click to see the new World Scale functions.
Here are the assignment and retrieval functions for World Scale.
- PostProcessEffectsKit & HPS::PostProcessEffectsKit::SetWorldScale(float in_scale)
- PostProcessEffectsKit & HPS::PostProcessEffectsKit::UnsetWorldScale()
- bool HPS::PostProcessEffectsKit::ShowWorldScale(float & out_scale) const
- PostProcessEffectsControl& HPS::PostProcessEffectsControl::SetWorldScale(float in_scale)
- PostProcessEffectsControl& HPS::PostProcessEffectsControl::UnsetWorldScale()
- bool HPS::PostProcessEffectsControl::ShowWorldScale(float & out_scale) const
If this value is not explicitly set, a scaling factor is automatically calculated based on the scene bounds. This factor is used to gain more control over the ambient occlusion output. We've found useful values anywhere from 0.001 to 50 (for different datasets) to produce decent results, depending on measurement units and model size.
- Visualize now checks to see if the specified 3D driver is available each time a WindowKey is created. If the driver isn't available, then an InvalidObjectException is thrown.
- If you are using Visualize on a Linux / Unix platform and directly or indirectly invoking the X11 API outside of Visualize, you will need to make a call to XInitThreads as the first X11 function in your application.
The behavior for the following functions has changed:
- HPS::OBJ::ImportNotifier::GetResults()
- HPS::PointCloud::ImportNotifier::GetResults()
- HPS::STL::ImportNotifier::GetResults() const
- HPS::Stream::ImportNotifier::GetResults()
- HPS::Sketchup::ImportNotifier::GetResults()
Previously, when a user called one of these functions an HPS::IOException would be thrown if the import operation associated with the caller didn't have a status of "Success". The exception message informed the user that the import results were not available.
Now, when a user calls one of these functions, if the import operation associated with the caller has a status of "InProgress" then the caller calls HPS::IONotifier::Wait(), which waits for the import to finish and then retrieves the results. If the return status of the import isn't "InProgress" or "Success", then an HPS::IOException is thrown. The exception message informs the user that the import failed.
Visualize HPS 2016 SP2 U1
NOTE: The release notes do not include bug fixes. For a list of bug fixes, please see this page.Library compatibility information:
Library name Version Windows Linux OS X Android iOS Notes HOOPS Exchange 2016 SP2 HOOPS Publish 2016 SP2 .NET Framework 4.0 4.5 required when using D3D_IMAGE_CANVAS Parasolid 29.0, 28.1 Please see the note below regarding Parasolid support. RealDWG 2017, 2016 RealDWG 2017 works with Visual Studio 2015
RealDWG 2016 works with Visual Studio 2012
There is no support for RealDWG in Visual Studio 2013Qt 5.6 Visual Studio 2012 uses Qt 5.1 SketchUp 2016 wxWidgets 3.1 Linux and OS X use wxWidgets 3.0
HOOPS Visualize 2016 Service Pack 2 Update 1 is a bug fix release only.
Parasolid support varies by platform:- Linux Ubuntu/Centos 32-bit platforms work with Parasolid 28.1. Please note that going forward this platform will no longer be supported with the HPS Parasolid Sprocket.
- VC11 works with Parasolid 29.0137.
- All other platforms work with Parasolid 29.0122 or later.
Enhancements
- Support is now available for the Exchange Sprocket for iOS.
Visualize HPS 2016 SP2
NOTE: The release notes do not include bug fixes. For a list of bug fixes, please see this page.Library compatibility information:
Library name Version Windows Linux OS X Android iOS Notes HOOPS Exchange 2016 SP2 HOOPS Publish 2016 SP2 .NET Framework 4.0 4.5 required when using D3D_IMAGE_CANVAS Parasolid 29.0 RealDWG 2017, 2016 RealDWG 2017 works with Visual Studio 2015
RealDWG 2016 works with Visual Studio 2012
There is no support for RealDWG in Visual Studio 2013Qt 5.6 Visual Studio 2012 uses Qt 5.1 SketchUp 2016 wxWidgets 3.1 Linux and OS X use wxWidgets 3.0 Enhancements
-
HOOPS Visualize added support for manipulator handles that allow users to easily move and translate objects in the scene. Support is provided in the form of a new operator HPS::HandlesOperator. Handle support is currently in BETA status. Current limitations include:
- Moved objects locations are not updated in any external databases. This means that while the data will be updated on the screen, the source data will not be updated in the HOOPS Exchange, HOOPS Publish, Parasolid or RealDWG database. This will only have a noticeable impact if you export the data.
- When editing geometry that is associated with a Component, the component structure might be altered destructively.
- HOOPS Visualize now allows you to set custom backgrounds on inserted text strings. The HPS::ShapeDefinition and HPS::ShapeKit classes were introduced to allow you to do this. The following new classes HPS::ShapeCoordinate, HPS::ShapePoint, HPS::ShapeElement, HPS::PolygonShapeElement, HPS::EllipseShapeElement, HPS::CircleShapeElement, HPS::EllipticalArcShapeElement, HPS::CircularArcShapeElement, HPS::LineShapeElement and HPS::AnchorShapeElement allow you to control these shapes. Finally, several new functions have been added to the HPS::PortfolioKey class to enable you to set these backgrounds. These include DefineShape, UndefineShape, ImportShape, ImportAllShapes, GetShapeDefinitionCount, ShowShapeDefinition and ShowAllShapeDefinitions. Please see this tutorial for a simple example.
- A variety of bug-fixes and improvements were made to the Parasolid integration including some which addressed edge-stitching issues.
-
A variety of improvements to the HOOPS Exchange integration have been made, including:
- Support for mobile platforms. Please note, all Android applications developed with the Exchange Sprocket (sprk_exchange) must use the GCC 4.9 toolchain.
- Support for flippable PMI via HPS::Exchange::ImportOptionsKit::SetPMIFlipping, which dictates whether Visualize will flip PMI when rotating so that text and symbols remain readable.
- Support for loading PRC directly from a stream.
- Improvements have been made to the quality and performance of shadow map and ambient occlusion capabilities.
- New classes have been added to support custom shape definitions: HPS::ShapeCoordinate, HPS::ShapePoint, HPS::ShapeElement, HPS::PolygonShapeElement, HPS::EllipseShapeElement, HPS::CircleShapeElement, HPS::EllipticalArcShapeElement, HPS::CircularArcShapeElement, HPS::LineShapeElement, HPS::AnchorShapeElement.
- Built on top of the custom shape classes, the new operator HPS::AnnotationOperator has been created to insert text annotations using mouse- and touch-driven devices.
- A new function HPS::KeyPath::ComputeExtent has been added. It calculates a screen-space rectangle that fully encloses the segments specified in the key path. The rectangle honors visibilities and accounts for any text strings that are in the scene.
- Visualize now supports pixel-space subwindows (exposed via HPS::SubwindowKit, HPS::SubwindowControl, HPS::AxisTriadControl, and HPS::NavigationCubeControl).
- More control over fine-grain filtering has been added, allowing frame buffer effects (bloom, ambient occlusion, silhouette edges, depth of field, and eye dome lighting) to be toggled on or off individually using new functions in the HPS::VisualEffectsControl class.
Click to see the new functions in the HPS::VisualEffectsControl class:
- HPS::VisualEffectsControl & HPS::VisualEffectsControl::SetAmbientOcclusionEnabled (bool in_state)
- HPS::VisualEffectsControl & HPS::VisualEffectsControl::SetBloomEnabled (bool in_state)
- HPS::VisualEffectsControl & HPS::VisualEffectsControl::SetDepthOfFieldEnabled (bool in_state)
- HPS::VisualEffectsControl & HPS::VisualEffectsControl::SetEyeDomeLightingEnabled (bool in_state)
- HPS::VisualEffectsControl & HPS::VisualEffectsControl::SetSilhouetteEdgesEnabled (bool in_state)
- bool HPS::VisualEffectsControl::ShowAmbientOcclusionEnabled (bool &out_state) const
- bool HPS::VisualEffectsControl::ShowBloomEnabled (bool &out_state) const
- bool HPS::VisualEffectsControl::ShowDepthOfFieldEnabled (bool &out_state) const
- bool HPS::VisualEffectsControl::ShowEyeDomeLightingEnabled (bool &out_state) const
- bool HPS::VisualEffectsControl::ShowSilhouetteEdgesEnabled (bool &out_state) const
- HPS::VisualEffectsControl & HPS::VisualEffectsControl::UnsetAmbientOcclusionEnabled ()
- HPS::VisualEffectsControl & HPS::VisualEffectsControl::UnsetBloomEnabled ()
- HPS::VisualEffectsControl & HPS::VisualEffectsControl::UnsetDepthOfFieldEnabled ()
- HPS::VisualEffectsControl & HPS::VisualEffectsControl::UnsetEyeDomeLightingEnabled ()
- HPS::VisualEffectsControl & HPS::VisualEffectsControl::UnsetSilhouetteEdgesEnabled ()
Functional Changes
- The OpenGL1.X and DirectX9 drivers have been deprecated. Support for these drivers will be removed at a later date. Developers are recommended to use the HPS::Window::Driver::Default3D which will automatically choose the best driver for your device.
-
Sewing for all types of HOOPS Exchange models is now exposed as an import option. As a result, some function signatures have changed:
- Function signature HPS::Exchange::ImportOptionsKit & HPS::Exchange::SetIGESSewingTolerance(double in_tolerance) has changed to HPS::Exchange::ImportOptionsKit & HPS::Exchange::ImportOptionsKit::SetSewingTolerance(double in_tolerance).
- Function signature HPS::Exchange::ImportOptionsKit & HPS::Exchange::UnsetIGESSewingTolerance() has changed to HPS::Exchange::ImportOptionsKit & HPS::Exchange::ImportOptionsKit::UnsetSewingTolerance().
- Function signature bool HPS::Exchange::ShowIGESSewingTolerance(double & out_tolerance) const has changed to bool HPS::Exchange::ImportOptionsKit::ShowSewingTolerance(double & out_tolerance) const.
Visualize HPS 2016 SP1
Library compatibility information:
Library name Version Windows Linux OS X Android iOS Notes HOOPS Exchange 2016 SP1 HOOPS Publish 2016 SP1 .NET Framework 4.0 4.5 required when using D3D_IMAGE_CANVAS Parasolid 28.1 RealDWG 2016 Only supported with Visual Studio 2012 Qt 5.6 Visual Studio 2012 uses Qt 5.1 SketchUp 2015 wxWidgets 3.1 Linux and OS X use wxWidgets 3.0 Enhancements
- Visual Studio 2015 is now supported.
- HOOPS Visualize can now automatically generate text backgrounds. New options on the Text[Key|Kit] as well as TextAttribute[Kit|Control] control everything related to the background. See [Set|Unset|Show]Background(), [Set|Unset|Show]BackgroundMargins(), and [Set|Unset|Show]BackgroundStyle().
- Control of edge weight and tolerance for cutting sections is now available. See CuttingSectionAttribute[Control|Kit]::[Set|Unset|Show]Tolerance() and [Set|Unset|Show]Weight().
- Point cloud files (PTS, PTX, XYZ) are now importable. See HPS::PointCloud::File::Import.
- Screen-anchored PMI and incremental load are now supported in our Exchange bridge.
- Significant performance improvements for highlighting when using HPS::Drawing::Overlay::WithZValues or HPS::Drawing::Overlay::InPlace.
- Print to scale is now supported.
- Qt 5.6 is now supported.
-
Variety of bug-fixes related to fully supporting international text strings.
New functions related to the HOOPS Exchange bridge
- The value AP242 has been added to the HPS::Exchange::STEP::Format enum
Options added to the HPS::Exchange::ImportOptionsKit:- [Set | Unset | Show]STEPValidationProperties
- [Set | Unset | Show]ProEMissingBoolean
- [Set | Unset | Show]ProEMissingFlexibleComponent
- [Set | Unset | Show]ProEFamilyTableSource
- [Set | Unset | Show]ProEHomeView
- [Set | Unset | Show]ProEExplodedViews
- [Set | Unset | Show]ProEDatum
- [Set | Unset | Show]ProEConstructionEntities
- [Set | Unset | Show]ProESkeletons
- [Set | Unset | Show]InventorEmbeddedTessellation
Options added to the HPS::Exchange::ExportSTEPOptionsKit:- [Set | Unset | Show]PMI
- [Set | Unset | Show]Curves
- [Set | Unset | Show]Attributes
Functional Changes
- D3DImage is now the default driver in the WPF Sandbox.
- Function signature HPS::ImportOptionsKit::SetPMIDefaultColor(RGBColor const & in_color) has changed to HPS::ImportOptionsKit::SetPMIDefaultColor(RGBColor const & in_color, bool in_override_color = false).
- Function signature HPS::ImportOptionsKit::ShowPMIDefaultColor(RGBColor & out_color) const has changed to HPS::ImportOptionsKit::ShowPMIDefaultColor(RGBColor & out_color, bool & out_override) const.
Visualize HPS 2016 Update 2
Library compatibility information:
Library name Version Windows Linux OS X Android iOS Notes HOOPS Exchange 2016 SP1 HOOPS Publish 2016 SP1 .NET Framework 4.0 4.5 required when using D3D_IMAGE_CANVAS Parasolid 27 RealDWG 2016 Only supported with Visual Studio 2012 Qt 5.3 Visual Studio 2012 uses Qt 5.1 SketchUp 2015 wxWidgets 3.0 Enhancements
- The HOOPS Exchange and HOOPS Publish integration libraries have been updated to 2016 SP1.
- General performance improvements to static model.
Visualize HPS 2016 Update 1
Library compatibility information:
Library name Version Windows Linux OS X Android iOS Notes HOOPS Exchange 2016 HOOPS Publish 2016 .NET Framework 4.0 4.5 required when using D3D_IMAGE_CANVAS Parasolid 27 RealDWG 2016 Only supported with Visual Studio 2012 Qt 5.3 Visual Studio 2012 uses Qt 5.1 SketchUp 2015 wxWidgets 3.0 HOOPS Visualize 2016 Update 1 is a bug fix release only.
Visualize HPS 2016
Library compatibility information:
Library name Version Windows Linux OS X Android iOS Notes HOOPS Exchange 2016 HOOPS Publish 2016 .NET Framework 4.0 4.5 required when using D3D_IMAGE_CANVAS Parasolid 27 RealDWG 2016 Only supported with Visual Studio 2012 Qt 5.3 Visual Studio 2012 uses Qt 5.1 SketchUp 2015 wxWidgets 3.0 Enhancements
- The HOOPS Publish integration is now supported on Linux platforms.
- The HOOPS Publish integration has been enhanced to support exporting both Exchange models and Visualize scene graph data to a 3D PDF document.
- HPS::ComponentTree and HPS::SceneTree objects can now have more than one highlight options kit associated with them, so HPS::ComponentTree::SetHighlightOptions(HighlightOptionsKitArray const & in_options) function was added. You can also append a highlight options kit without having to show the current ones using the new function HPS::ComponentTree::AddHighlightOptions. New functions have also been added to facilitate enabling and disabling of multiple highlight styles. These widgets are tightly integrated with MFC and WPF and are only supported on Windows platforms.
- New Exchange interface functions HPS::Exchange::File::GetInformation and HPS::Exchange::File::GetThumbnailImage wrap the native Exchange functions A3DGetFileInformation and A3DExtractFileThumbnail.
- The amount of system memory allocated and utilized after an HSF file import has been significantly reduced. This can enable applications to successfully load and interact with larger HSF files, particularly on mobile devices where system memory is fairly limited.
- The HPS::Exchange::MeasurementOperator is now available for use on an Exchange model with B-rep. This operator measures edges, face distances, face angles, and point-to-point.
- The HPS::MarkupOperator is now available, which enables the user to insert markup into a scene. Types include text, circles, rectangles, and freehand markup.
- Calculation of the camera near and far planes is now possible using HPS::WindowKey::ConvertCoordinates.
- Support has been added for setting the hard edge angle.
- Performance of cutting sections has been improved in certain cases. Specifically, Visualize will cull away segments whose bounding volume falls completely on the 'cut' side of any active cutting planes, instead of sending the segments to the graphics hardware for further processing. This can result performance gains in situations where the model contains numerous segments, or if HPS::StaticModel::AttributeSpatialStaticModel is enabled.
- The HPS::CameraChangedEvent has been added. It is injected by our operators which modify the camera positions. Users can subscribe its handler to get notified whenever one of the operators changes the camera settings.
-
A new importer, HPS::ExchangeParasolid, enables you to import a non-Parasolid model into a Parasolid session while preserving the model's PMI and capture information.
HOOPS Exchange models can now be exported with B-rep information and Visualize data to the PRC format
- The ExportPRC function now returns an HPS::Exchange::ExportNotifier.
- The ExportPRC functions which previously accepted a SprocketPath parameter now accept a KeyPathArray instead.
- The ExportPRCOptionsKit has new functions used to Set, Unset and Show additional key paths.
Functional Changes
-
HPS::ComponentTree::GetHighlightOptions() now returns a HPS::HighlightOptionsKitArray (it used to return a HPS::HighlightOptionsKit).
HOOPS Publish changes to support export of both Exchange B-rep and Visualize data
- AnnotationKit(SprocketPath const & in_source) - This constructor no longer exists. To get the same result, you need to construct the AnnotationKit using another one of the available constructors and then call SetSource on it. HPS::SprocketPath was previously used, but you would need to use a HPS::CADModel in HPS 2016 when calling SetSouce.
- AnnotationKit::SetSource(KeyPath const & in_source) - This function no longer exists. Developers should use either AnnotationKit::SetSource(KeyPathArray const & in_source) or AnnotationKit::SetSource(size_t in_count, KeyPath const in_source []) to achieve the same result.
- AnnotationKit::SetSource(SprocketPath const & in_source) - This function does not exist anymore. AnnotationKit::SetSource(CADModel const & in_source) has been added to replace it.
- There are two new AnnotationKit::SetSource overloads. They are AnnotationKit::SetSource(CADModel const & in_source, KeyPathArray const & in_additional_sources) and AnnotationKit::SetSource(CADModel const & in_source, size_t in_count, KeyPath const in_additional_sources []).
- AnnotationKit::ShowSource(Annotation::SourceType & out_source_type, SprocketPath & out_sprocket_paths, KeyPathArray & out_key_paths) const - This function signature has changed to AnnotationKit::ShowSource(Annotation::SourceType & out_source_type, CADModel & out_cad_model, KeyPathArray & out_key_paths) const (the difference is that callers will receive a HPS::CADModel instead of a HPS::SprocketPath).
- Publish::File::Export(SprocketPath const & in_source, char const * in_file_name, ExportOptionsKit const & in_options) has been replaced by Publish::File::Export(CADModel const & in_cad_model, char const * in_file_name, ExportOptionsKit const & in_options).
- There are four new HPS::Publish::File::Export overloads, which are used to access the new functionality of exporting a CAD model with the addition of selected key paths.
Significant API changes
In the name of standardization, we have made some necessary API changes that break compatibility with older code. Below is a list of those changes. To facilitate updating to the new libraries, we've included a Python script located in the /tools directory that can be used to automatically update an entire code base to the new API. The exception to this is the change to conditions, parts of which could not be discerned by regular expressions. The full details of these changes follow.
Various enumeration values have been renamed in order to standardize similar values and remove redundancy wherever possible.
- HPS::Window::UpdateControl enum has been renamed to HPS::Window::UpdateType.
- HPS::Window::UpdateControl enum fields have been renamed to HPS::UpdateOptionsControl::SetUpdateType.
- HPS::Handedness::Shell enum fields have been renamed to HPS::Handedness::Shell::[Fix|Reverse].
- HPS::Material::Type enum fields have been renamed to HPS::Material::Type::[None|RGBColor|RGBAColor].
- HPS::Material::Texture::Interpolation::InterpolationOff enum field has been renamed to HPS::Material::Texture::Interpolation::None.
- HPS::Material::Texture::Decimation::DecimationOff enum has been renamed to HPS::Material::Texture::Decimation::None.
- HPS::Performance::DisplayLists enum fields have been renamed to HPS::Performance::DisplayLists::[None|Geometry|Segment].
- HPS::Performance::StaticModel enum fields have been renamed to HPS::Performance::StaticModel::[None|Attribute|AttributeSpatial].
- HPS::Drawing::Handedness::NoHandedness enum field has been renamed to HPS::Drawing::Handedness::None.
- HPS::Drawing::Overlay enum fields have been renamed to HPS::Drawing::Overlay::[None|Default|WithZValues].
- HPS::Transparency::Method::Off enum field has been renamed to HPS::Transparency::Method::None.
- HPS::Transparency::Algorithm::NoSorting enum field has been renamed to HPS::Transparency::Algorithm::None.
- HPS::Text::Justification enum fields have been renamed to HPS::Text::Justification::[Left|Right|Center].
- HPS::Text::Renderer enum fields have been renamed to HPS::Text::Renderer::[Default|Driver|Truetype].
- HPS::Text::Rotation::NoRotation enum field has been renamed to HPS::Text::Rotation::None.
- HPS::Text::RegionAlignment enum fields have been renamed to HPS::Text::RegionAlignment::[Top|Center|Bottom].
- HPS::LinePattern::Join enum fields have been renamed to HPS::LinePattern::Join::[Mitre|Round|Bevel].
- HPS::LinePattern::Cap enum fields have been renamed to HPS::LinePattern::Cap::[Butt|Square|Round|Mitre].
- HPS::Glyph::Fill enum fields have been renamed to HPS::Glyph::Fill::[None|Continuous|New].
- HPS::Glyph::ColorSource::Normal enum field has been renamed to HPS::Glyph::ColorSource::Default.
- HPS::SegmentOptimizationOptions::UserData::Nothing enum field has been renamed to HPS::SegmentOptimizationOptions::UserData::None.
- HPS::SegmentOptimizationOptions::Matrix::Nothing enum field has been renamed to HPS::SegmentOptimizationOptions::Matrix::None.
- HPS::Operator::Priority::Normal enum field has been renamed to HPS::Operator::Priority::Default.
Functions that accept a kit have been renamed so they match the name of that type of kit. The Sprocket-level update paradigm has been brought into line with the style of HPS core by introducing the option of returning an update notifier.
- [Reference|Include|Style]Key::[Set|Unset|Show]Condition functions have been renamed to [Reference|Include|Style]Key::[Set|Unset|Show]ConditionalExpression.
- HPS::SegmentKey::[Set|Unset|Show]Boundings functions have been renamed to HPS::SegmentKey::[Set|Unset|Show]Bounding.
- HPS::GeometryKey::ShowBoundings functions have been renamed to HPS::GeometryKey::ShowBounding.
- HPS::SegmentKey::[Set|Unset|Show]AttributeLocks functions have been renamed to HPS::SegmentKey::[Set|Unset|Show]AttributeLock.
- HPS::SegmentKey::[Set|Unset|Show]CuttingSectionAttributes functions have been renamed to HPS::SegmentKey::[Set|Unset|Show]CuttingSectionAttribute.
- HPS::SegmentKey::[Set|Unset|Show]CurveAttributes functions have been renamed to HPS::SegmentKey::[Set|Unset|Show]CurveAttribute.
- HPS::SegmentKey::[Set|Unset|Show]CylinderAttributes functions have been renamed to HPS::SegmentKey::[Set|Unset|Show]CylinderAttribute.
- HPS::SegmentKey::[Set|Unset|Show]EdgeAttributes functions have been renamed to HPS::SegmentKey::[Set|Unset|Show]EdgeAttribute.
- HPS::SegmentKey::[Set|Unset|Show]LightingAttributes functions have been renamed to HPS::SegmentKey::[Set|Unset|Show]LightingAttribute.
- HPS::SegmentKey::[Set|Unset|Show]LineAttributes functions have been renamed to HPS::SegmentKey::[Set|Unset|Show]LineAttribute.
- HPS::SegmentKey::[Set|Unset|Show]MarkerAttributes functions have been renamed to HPS::SegmentKey::[Set|Unset|Show]MarkerAttribute.
- HPS::SegmentKey::[Set|Unset|Show]NURBSSurfaceAttributes functions have been renamed to HPS::SegmentKey::[Set|Unset|Show]NURBSSurfaceAttribute.
- HPS::SegmentKey::[Set|Unset|Show]SphereAttributes functions have been renamed to HPS::SegmentKey::[Set|Unset|Show]SphereAttribute.
- HPS::SegmentKey::[Set|Unset|Show]TextAttributes functions have been renamed to HPS::SegmentKey::[Set|Unset|Show]TextAttribute.
- HPS::UpdateOptionsControl::SetUpdateControl function has been renamed to HPS::UpdateOptionsControl::UpdateType.
- HPS::[Canvas|Layout|View|Model]::Update(Sprocket::UpdateType::Synchronous) function has been superseded by [Canvas|Layout|View|Model]::UpdateWithNotifier().Wait().
Some conditions had overloaded nomenclature that could be confusing. The new approach disambiguates conditional expressions from the conditions (strings) which can be used to satisfy them.
- HPS::Condition has been renamed to HPS::ConditionalExpression.
- HPS::ConditionArray has been renamed to HPS::ConditionalExpressionArray.
Visualize HPS 2015 Service Pack 2 Update 2
Library compatibility information:
Library name Version Windows Linux OS X Android iOS Notes HOOPS Exchange 2015 Service Pack 2 HOOPS Publish 2015 Service Pack 2 .NET Framework 4.0 4.5 required when using D3D_IMAGE_CANVAS Parasolid 27 RealDWG 2016 Only supported with Visual Studio 2012 Qt 5.3 Visual Studio 2012 uses Qt 5.1 SketchUp 2015 wxWidgets 3.0 HOOPS Visualize 2015 Service Pack 2 Update 2 is a bug-fix release only.
Visualize HPS 2015 Service Pack 2 Update 1
Library compatibility information:
Library name Version Windows Linux OS X Android iOS Notes HOOPS Exchange 2015 Service Pack 2 HOOPS Publish 2015 Service Pack 2 .NET Framework 4.0 4.5 required when using D3D_IMAGE_CANVAS Parasolid 27 RealDWG 2016 Only supported with Visual Studio 2012 Qt 5.3 Visual Studio 2012 uses Qt 5.1 SketchUp 2015 wxWidgets 3.0 Enhancements
- Improved the performance and interactivity of highlighting and isolating geometry.
- Reduced flickering in fixed-framerate mode.
- Improved the performance of D3D image and offscreen rendering.
Functional Changes
- Support for user-defined shaders has been removed.
Visualize HPS 2015 Service Pack 2
Library compatibility information:
Library name Version Windows Linux OS X Android iOS Notes HOOPS Exchange 2015 Service Pack 2 HOOPS Publish 2015 Service Pack 2 .NET Framework 4.0 4.5 required when using D3D_IMAGE_CANVAS Parasolid 27 RealDWG 2016 Only supported with Visual Studio 2012 Qt 5.3 Visual Studio 2012 uses Qt 5.1 SketchUp 2015 wxWidgets 3.0 Enhancements
- Support for DWG import is provided via the RealDWG integration.
- The performance of HSF file loading has been improved by up to 10%.
- A new 3D sphere vertex marker is available, HPS::Glyph::Default::Sphere.
- Support for HSF Import and Export events has been added, which allows developers greater flexibility when reading and writing HSFs.
- HSF data can now be imported from a buffer and exported to a buffer.
- The Sandboxes have been enhanced to demonstrate more advanced progress reporting using the existing APIs.
- HPS::KeyPath has been enhanced to show net definitions. For example, HPS::KeyPath::ShowEffectiveMaterialPaletteDefinition, HPS::KeyPath::ShowEffectiveTextureDefinition, etc...
Functional Changes
- The android_sandbox project, which was based on Eclipse, has been renamed to android_eclipse_sandbox. android_sandbox still exists, but it is now an Android Studio project.
- The HPS::TouchEvent::SetTouches method has been removed. Touches can now be set using the regular assignment operator.
Visualize HPS 2015 Service Pack 1 Update 3
Library compatibility information:
Library name Version Windows Linux OS X Android iOS Notes HOOPS Exchange 2015 Service Pack 2 HOOPS Publish 2015 Service Pack 2 .NET Framework 4.0 4.5 required when using D3D_IMAGE_CANVAS Parasolid 27 Qt 5.3 Visual Studio 2012 uses Qt 5.1 SketchUp 2015 wxWidgets 3.0 Functional Changes
- The Exchange interface has been updated to HOOPS Exchange SP2.
- The Translate functions in Exchange have changed. They now take a HPS::TranslationOptionsKit argument, which allows the user to specify additional translation options.
Visualize HPS 2015 Service Pack 1 Update 2
Library compatibility information:
Library name Version Windows Linux OS X Android iOS Notes HOOPS Exchange 2015 Service Pack 1 HOOPS Publish 2015 Service Pack 1 .NET Framework 4.0 4.5 required when using D3D_IMAGE_CANVAS Parasolid 27 Qt 5.3 Visual Studio 2012 uses Qt 5.1 SketchUp 2015 wxWidgets 3.0 Improvements
- Improved the performance and interactivity of highlighting and isolating geometry.
- Reduced flickering in fixed-framerate mode.
- Improved the performance of D3D image and offscreen rendering.
Visualize HPS 2015 Service Pack 1 Update 1
Library compatibility information:
Library name Version Windows Linux OS X Android iOS Notes HOOPS Exchange 2015 Service Pack 1 HOOPS Publish 2015 Service Pack 1 .NET Framework 4.0 4.5 required when using D3D_IMAGE_CANVAS Parasolid 27 Qt 5.3 Visual Studio 2012 uses Qt 5.1 SketchUp 2015 wxWidgets 3.0 Functional changes
- A bug has been fixed in our license validation
Visualize HPS 2015 Service Pack 1
Library compatibility information:
Library name Version Windows Linux OS X Android iOS Notes HOOPS Exchange 2015 Service Pack 1 HOOPS Publish 2015 Service Pack 1 .NET Framework 4.0 4.5 required when using D3D_IMAGE_CANVAS Parasolid 27 Qt 5.3 Visual Studio 2012 uses Qt 5.1 SketchUp 2015 wxWidgets 3.0 New features and enhancements
- 64-bit iOS simulator libraries are now included.
- There is a new import function that can operate directly on an A3DAsmModelFile, and a new ExportPRC function which, given a HPS::SprocketPath, will construct PRC from the scene graph.
- The axis triad and the navigation cube may now be resized and arbitrarily positioned.
- Colored point clouds can now be exported to 3D PDFs.
- Multiple CAD models may now be imported into the same scene graph using the HOOPS Exchange integration.
- Exchange components can now be reloaded in order to maintain synchronicity between PRC data and the Visualize scene graph.
- Subtrees can now be exported to 3D PDF documents.
- Functions have been added to query arbitrary subsets of points to the following geometry types (kits and keys): shell, mesh, NURBS curve and surface, cylinder, line, and polygon. The points can be queried by list as well as by range.
-
A new model comparison function, HPS::SubwindowKit::SetModelCompareMode is now available with allows you to compare two models and highlight any differences.
The functionality of the cutting section operator has been enhanced
- Each operator can now handle N cutting planes, instead of just one.
- Planes are inserted as individual cutting planes, but they can be grouped into a section. If the planes are grouped into a section, they can be split into individual cutting planes. This is done through the new functions called SetSectioning(bool in_sectioning) and GetSectioning
- The visibility of the shells representing the cutting sections can be toggled on or off. This is done through the new functions called SetPlaneVisibility and GetPlaneVisibility.
- When the operator is first attached, an indicator is displayed which shows the user where a cutting section will be inserted on a click (same behavior as before). The user can turn this indicator on or off using SetIndicatorVisibility and GetIndicatorVisibility. If the indicator visibility is on, the user can insert cutting planes with their mouse with the aid of the indicator.
- At any time, cutting planes can be added programmatically using the SetPlanes function. This function replaces a previous function called InsertCuttingPlaneFromEquation. There is also a GetPlanes function, which lets the user know which planes are active at any time.
Functional changes
- The HPS::Publish::AnnotationKit::ShowSource function has changed to accommodate exporting subtrees. It can now return either a SprocketPath or a KeyPathArray, together with an enum telling the user which of the two return values is valid. This breaks compatibility with previous versions of HPS, so if you were previously using the HPS::Publish::AnnotationKit::ShowSource function, you will need to change your code for it to work with this version of HOOPS Visualize.
- Exporting of HPS::Stream files now happens asynchronously. The export now works very much like the import functions, in that it returns a notifier which can be used to check the progress or cancel the export. If you require the old export behavior, you can use a HPS::Stream::ExportNotifier and call Wait(). See section "Exporting Files" in the Programming Guide.
- The "ImportTime" and "ParseTime" metadata that was present on the CADModel have been removed and replaced with GetImportTime and GetParseTime on the HPS::Exchange::ImportNotifier. This change was also made to Parasolid CAD models and HPS::Parasolid::ImportNotifier for consistency.
- The HPS::Exchange::TranslationNotifier::GetModelLoadTime function was renamed to GetImportTime, and additionally the (new) GetImportTime and (existing) GetTranslationTime functions on the TranslationNotifier have been changed to return time in milliseconds, not seconds.
- The behavior of HPS::Component::Delete has changed. Previously, calling HPS::Component::Delete would delete all the underlying subcomponents, even if they had multiple owners. Now, if HPS::Component::Delete is invoked on a component which has subcomponents with multiple owners, it will merely remove that single owner, leaving that multiply-owned subcomponent intact. However, if a subcomponent only has one owner it will be deleted if its owner is deleted.
- Object space selection methods on the Database are deprecated and will be removed in the next major release (Visualize 2016). Use the variants from the HPS::SelectionControl instead.
Visualize HPS 2015 Update 1
Library compatibility information:
Library name Version Windows Linux OS X Android iOS Notes HOOPS Exchange 2015 Service Pack 1 HOOPS Publish 2015 Service Pack 1 .NET Framework 4.0 4.5 required when using D3D_IMAGE_CANVAS Parasolid 27 Qt 5.3 Visual Studio 2012 uses Qt 5.1 SketchUp 2015 wxWidgets 3.0
Visualize HPS 2015
Library compatibility information:
Library name Version Windows Linux OS X Android iOS Notes HOOPS Exchange 2015 HOOPS Publish 2015 .NET Framework 4.0 4.5 required when using D3D_IMAGE_CANVAS Parasolid 27 Qt 5.3 Visual Studio 2012 uses Qt 5.1 SketchUp 2014 wxWidgets 3.0 New features and enhancements
- A reference component hierarchy browser is now included in the WPF and MFC sandboxes, and is provided in source code form. This allows developers to more easily add a custom model-browser to Visualize applications.
- The performance of patterned line and edge drawing in the DX11 and OpenGL2 drivers has been improved by up to 15x. The reference manual entry for HPS::LinePattern::Default lists further details.
- A new polygonal clip region interface is available, which enables the user to clip or mask geometry in a segment tree.
- A new event type has been added - HPS::UpdateCompletedEvent - which is triggered whenever a display update is completed.
- The HPS::CuttingSectionOperator is now available.
- The HPS::MouseWheelOperator zoom amount and modifier key can now be configured.
- New methods have been added to the HPS::SelectionResults class: Union, Intersect, Difference, and SymmetricDifference.
- Shell optimizations can now be specified in the STL importer using HPS::STL::ImportOptionsKit::SetOptimization
- Highlighting performance as well as rendering performance of highlighted scenes has been improved.
- Rendering performance when using static model has been improved for a wide variety of scene graph organizations.
- Performance of view-dependent vertex markers (splat-rendering using filled circles and filled squares) has been improved in the DirectX 11 driver. See section 2.1.5 of the Programming Guide for details about vertex markers.
- Attribute locks can now be set on cameras.
-
Added capability to set a filter on an include key or a style key so that you can control what is included or styled.
HOOPS Publish new features
- Developers now have the ability to force the color of PMI to one selected by the user. This is done through HPS::Publish::ArtworkKit::SetPMIColor.
- Developers can specify how many views are scrolled when the "previoius" and "next" buttons are clicked in a view carousel. This is controlled through HPS::Publish::AnnotationKit::SetCarouselButtons.
- The following items can now be added to pages: check boxes, radio buttons, list boxes, drop down lists, and digital signature fields. Each one of these items has an associated kit, and they can be inserted through the HPS::Publish::PageKit and HPS::Publish::PageControl.
HOOPS Exchange new features
- Files supported by Exchange can be translated to Parasolid parts. This is done through the HPS::Exchange::File::Translate function (to translate a file which has not been loaded into HPS), the HPS::Exchange::CADModel::Translate function (to translate an existing CADModel) or the HPS::Exchange::Component::Translate function (to translate a single representation item component). All of these functions return a HPS::Exchange::TranslationNotifier, which is a variation on the HPS::IONotifier.
- Added options to specify the JT tessellation level on import
- Added options to only import global IDs as metadata for IFC files
- Added options not to import lines for IFC files
- Added options to optimize face import for IFC files
- CATIA V5 drawings are now supported
- File loading performance for IFC files has been significantly improved
Parasolid new features
- There is a new Parasolid function, HPS::Parasolid::FacetTessellationKit::SetTessellationLevel, which makes it easier to specify tessellation during file import
Functional changes
- 32-bit Linux libraries are no longer provided
- 64-bit iOS libraries are now provided
- A new 'strength' parameter on the PostProcessEffects[Kit|Control]::SetEyeDomeLighting function allows you to set the multiplier on the calculated per-pixel occlusion value.
- The appearance of the navigation cube has been updated and now includes an indication of orientation.
- Event handlers must now call HPS::EventHandler::Shutdown in their destructors. Failure to do so may result in undefined behavior.
-
The transform mask interface has been modified to allow the camera scale mask to be applied to perspective projections. Functions in classes related to transform masks have been modified from [Set|Show|Unset]CameraPerspective to [Set|Show|Unset]CameraPerspectiveScale. Customers using the old CameraPespective functions or HPS::Search::Type enums should replace them with the CameraPerspectiveScale functions.
Packaging changes
- On iOS, release HPS libraries are now produced under <visualize_root>/hps/lib/ios. They are placed under the lib instead of bin as the lib folder is reserved for static build resources and all iOS libraries are static. In order to support all iPhone / iPad architectures we now distribute HPS libs as universal libraries (containing armv7, arm64, and i386 symbols). The iOS-Sandbox is still produced under <visualize_root>/hps/lib/ios.
- On Android, release HPS libraries are now produced under <visualize_root>/hps/bin/android. They are placed under the bin instead of lib as the bin folder is reserved for application binaries and dynamically loaded libraries (and all of the Android libs are dynamic shared objects). The Android HPS libs are currently not distributed as fat binaries. The Android sandbox is still produced under <visualize_root>/hps/bin/android/.
- On OS X, release HPS libraries are now produced under <visualize_root>/hps/bin/osx. The OS X sandboxes are now all produced under <visualize_root>/hps/bin/osx/.
- For Windows, the debug .lib files and release .lib files are no longer produced in the same directory. The debug lib files are placed in <visualize_root>/hps/lib/win<bitness>_<compiler>d/ instead of in the release lib directory of <visualize_root>/hps/lib/win<bitness>_<compiler>/ . For example, the release HPS .lib files for vc11 on a 32 bit build would be in <visualize_root>/hps/lib/win32_vc11/ while the debug .lib files would be in <visualize_root>/hps/lib/win32_vc11d/
Overview
Sample Code
Programming Guide
1 Fundamentals
2 Geometry
- 2.1 Shells
- 2.2 Meshes
- 2.3 Text
- 2.4 Lights
- 2.5 Lines
- 2.6 Curves
- 2.7 Markers
- 2.8 Polygons
- 2.9 Spheres
- 2.10 Cylinders
- 2.11 NURBS
- 2.12 Cutting sections
- 2.13 Grids
- 2.14 Reference Geometry
3 Viewing
4 Portfolios
5 Materials
6 User Interaction
7 Rendering
8 Rendering Effects
- 8.1 Anti-alias
- 8.2 Shadows
- 8.3 Reflection planes
- 8.4 Bloom
- 8.5 Lighting algorithms
- 8.6 Color interpolation
- 8.7 Hidden surface removal
- 8.8 Depth of field
- 8.9 Perimeter and silhouette edges
9 File I/O
- 9.1 Importing files
- 9.2 Exporting files
- 9.3 Component hierarchy
- 9.4 HOOPS Publish integration
- 9.5 HOOPS Exchange integration
- 9.6 Parasolid integration
- 9.7 Loading SketchUp models
- 9.8 Loading DWG models
10 Events and Exceptions
11 OOC Point Cloud Support
- 11.1 Preprocessing Data
- 11.2 Using the OOC API
- 11.3 Importing OOC files
- 11.4 OOC Operators
- 11.5 Filtering
12 Appendix
API Reference
HOOPS Visualize 2017 SP2 U1 www.techsoft3d.com developer.techsoft3d.com