HOOPS Visualize Documentation

< Home

< Technical Overview

< Supported Platforms

< Device Guide

RELEASE NOTES

HOOPS Visualize makes use of open source third-party software. A list of acknowledgments can be found here.

Visualize HPS 2015 Update 1

Library compatibility information:

Library nameVersionWindowsLinuxOS XAndroidiOSNotes
HOOPS Exchange2015 Service Pack 1yesyesyesnono
HOOPS Publish2015 Service Pack 1yesnononono
.NET Framework4.0yesnononono4.5 required for WPF over Remote Desktop
Parasolid27yesyesyesnono
Qt5.3yesyesyesnonoVisual Studio 2012 uses Qt 5.1
SketchUp2015yesnononono
wxWidgets3.0yesyesyesnono

New features and enhancements

  • 32-bit Linux libraries are now included.

Visualize HPS 2015

Library compatibility information:

Library nameVersionWindowsLinuxOS XAndroidiOSNotes
HOOPS Exchange2015yesyesyesnono
HOOPS Publish2015yesnononono
.NET Framework4.0yesnononono4.5 required for WPF over Remote Desktop
Parasolid27yesyesyesnono
Qt5.3yesyesyesnonoVisual Studio 2012 uses Qt 5.1
SketchUp2014yesnononono
wxWidgets3.0yesyesyesnono

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 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 - UpdateCompletedEvent - which is triggered whenever a display update is completed.
  • The CuttingSectionOperator is now available.
  • The MouseWheelOperator zoom amount and modifier key can now be configured.
  • New methods have been added to the SelectionResults class: Union, Intersect, Difference, and SymmetricDifference.
  • Shell optimizations can now be specified in the STL importer using 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
  •   HOOPS Exchange new features
  •   Parasolid new features

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 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 Search::Type enums should replace them with the CameraPerspectiveScale functions.

  •   Packaging changes


Visualize HPS 1.32

Library compatibility information:

Library nameVersionWindowsLinuxOS XAndroidiOSNotes
HOOPS Exchange7.2yesyesyesnono
HOOPS Publish7.2yesnononono
.NET Framework4.0yesnononono4.5 required for WPF over Remote Desktop
Parasolid27yesyesyesnono
Qt5.1yesyesyesnono
SketchUpSDK v7yesnononono
wxWidgets3.0yesyesyesnono

New features and enhancements

  • Models loaded with the Visualize-Parasolid interface can now be exported


Visualize HPS 1.31

Library compatibility information:

Library nameVersionWindowsLinuxOS XAndroidiOSNotes
HOOPS Exchange7.2yesyesyesnono
HOOPS Publish7.2yesnononono
.NET Framework4.0yesnononono4.5 required for WPF over Remote Desktop
Parasolid27yesyesyesnono
Qt5.1yesyesyesnono
SketchUpSDK v7yesnononono
wxWidgets3.0yesyesyesnono

New features and enhancements

Functional changes

  • [Set|Unset|Show]BRepData have been deprecated and superseded by [Set|Unset|Show]BRepMode.
  • CADModel::GetComponentPath now returns a ComponentPath object rather than a ComponentArray
  • Android builds now require gcc 4.8


Visualize HPS 1.21

Library compatibility information:

Library nameVersionWindowsLinuxOS XAndroidiOSNotes
HOOPS Exchange7.2yesyesyesnono
HOOPS Publish7.2yesnononono
.NET Framework4.0yesnononono4.5 required for WPF over Remote Desktop
Qt5.1yesyesyesnono
SketchUpSDK v7yesnononono
wxWidgets3.0yesyesyesnono

Functional changes

  • Exchange::ErrorEvent and Publish::ErrorEvent classes have been consolidated into the top level ErrorEvent
  • Exchange::WarningEvent and Publish::WarningEvent classes have been consolidated into the top level WarningEvent
  • Exchange::MessageEvent and Publish::MessageEvent classes have been consolidated into the top level InformationEvent


Visualize HPS 1.2

Library compatibility information:

Library nameVersionWindowsLinuxOS XAndroidiOSNotes
HOOPS Exchange7.2yesyesyesnono
HOOPS Publish7.2yesnononono
.NET Framework4.0yesnononono4.5 required for WPF over Remote Desktop
Qt5.1yesyesyesnono
SketchUpSDK v7yesnononono
wxWidgets3.0yesyesyesnono

New features and enhancements:

  • StyleControl has new overloads for Show(), ShowTop(), ShowAllSegment(), and ShowAllNamed() which return an array of StyleKey objects.
  • PortfolioKey has new GetDefinitionCount(), GetTextureDefinitionCount(), GetCubeMapDefinitionCount(), GetImageDefinitionCount(), GetNamedStyleDefinitionCount(), GetMaterialPaletteDefinitionCount(), GetGlyphDefinitionCount(), and GetLinePatternDefinitionCount() functions.
  • New methods are available for SelectionOptionsControl and SelectionOptionsKit to control whether culling is respected during selection events.
  • A sandbox based on wxWidgets has been added.
  • SketchUp files are now importable on Windows platforms
  • Attribute lock can now be used to lock color
  • Database searches have a new parameter that enables you to specify search behavior
  • Subentity selection is now supported for polygons, lines, NURBS curves, and text.

  •  Exchange - new I/O options
  • Text is now exportable to 3D-PDFs via the HOOPS Publish interface
  • Classes are now available to assist with the creation of a model browser. See SceneTree and SceneTreeItem.
  • MFC and WPF Sandboxes now include a segment browser, which facilitates analysis of the scene-graph contents and helps with troubleshooting

Functional changes

  • The start_segment parameter has been removed from all SelectBy* methods. The start segment can still be set in the SelectionOptionsKit using the SetScope method.
  • Visual Studio 2013 projects now require Update 1
  • Visual Studio 2012 projects now require Update 4
  • Sprockets has been integrated into Core Graphics. Sprockets no longer exists as a separate concept, although the headers, libraries, and linking requirements remain.
  • StyleKey::GetSource() has been replaced with StyleKey::ShowSource(). The old API was insufficient to show the name for style keys coming from named styles.
  • Event channel properties have been removed

  •  Exchange functions changed


Visualize HPS 1.11

Library compatibility information:

Library nameVersionWindowsLinuxOS XAndroidiOSNotes
HOOPS Exchangev7.1yesyesyesnono
HOOPS Publishv7.1yesnononono
.NET Frameworkv4.0yesnonononov4.5 required for WPF over Remote Desktop
Qtv5.1yesyesyesnono


Visualize HPS 1.1

Library compatibility information:

Library nameVersionWindowsLinuxOS XAndroidiOS
HOOPS Exchangev7.1yesyesyesnono
HOOPS Publishv7.1yesnononono
.NET Frameworkv4.0yesnononono
Qtv5.1yesyesyesnono

New features and enhancements:

  • Visual Studio 2013 is now supported
  • New component creation API functions have been added to assist in the creation of Exchange components
  • Nameless definitions are now supported
  • Grids are now supported
  • WalkOperator, SimpleWalkOperator, FlyOperator, and TurntableOperator have been added
  • STL and OBJ file importers are now provided
  • A new method, Optimize, is provided for ShellKit and ShellKey. The method takes a ShellOptimizationOptionsKit in order to tweak shells for tolerance, normal tolerance, orphan tolerance, and handedness.
  • A D3DImage canvas is available for the WPF Sandbox. DX9 and DX11 support is included. This can be used in place of the WinForms canvas. For an example on how it is used, see SprocketsWPFControl.cs in the wpf_sandbox project.
  • New API classes related to computing spatial relationships among shells and points are now available. See Programming Guide section 2.1.8 for details.
  • The TreeContext class is now available, which increases performance when computing collision detections or selection by ray.
  • A navigation cube and axis triad are now available for Sprockets

Functional changes

  • The IOResult enum and the IOException class have been pushed to the top level namespace
  • Anti-aliasing is no longer available in the OpenGL 1 driver

Limitations

  • The Qt Sandbox is not supported with Visual Studio 2013



Visualize HPS 1.0

Library compatibility information:

Library nameVersionWindowsLinuxOS XAndroidiOS
HOOPS Exchangev6.1yesyesyesnono
HOOPS Publishv6.1yesnononono
.NET Frameworkv4.0yesnononono
Qtv5.1yesyesyesnono

New features and enhancements

Functional changes

  • Operator controls now take an OperatorPtr instead of an Operator reference
  • Changes have been made to the event infrastructure. See Core Graphics Programming Guide section 10.1 and section 10.2 for details on the new way to use events.
  • The SelectOperator and HighlightOperator now accept SelectionOptionsKit and HighlightOptionsKit, respectively.
  • The various SetFace*** methods in MaterialMappingControl will apply the setting to both the 'front' and 'back' faces of facetted geometry. (Previously, these methods only affect the 'front' faces.)
  • In MaterialMappingControl, new SetFrontFace*** methods have been added to complement the existing SetBackFace*** methods, allowing developers to apply different attribute values to the front and back faces of geometry. (The SetFace*** methods should be used to set attributes to ensure maximum performance. The SetFrontFace*** and SetBackFace*** methods should ONLY be used if you require different attributes for the front/back faces of non-closed facetted geometry).
  • MaterialKit now includes a new SetDiffuse method (with RGB and RGBA variants), which is used to apply an RGB or RGBA color to the whole diffuse channel, and will replace any diffuse textures or shaders.
  • You can now use overlays with HighlightOptionsKit.
  • Subentity highlighting is no longer supported.

Known Issues

  • The Exchange integration on Linux is not currently available.



Visualize HPS Release Candidate

Plug-in compatibility information

Plug-in nameVersionWindowsLinuxOS XAndroidiOS
HOOPS Exchangev6.1yesyesyesnono
HOOPS Publishv6.1yesnononono

New features and enhancements:

  • Core Graphics - Hardcopy support has been added. You can now export to 2D PDF, PostScript, or to a printer.
  • Core Graphics - New options for the UpdateOptionsControl include Window::UpdateControl::CompileOnlyUpdate and Window::UpdateControl::ExhaustiveUpdate.
  • Core Graphics - A new GeometryKey base class has been created to facilitate setting geometry priority. Previously, each geometry class had its own priority function.
  • Core Graphics - Distant lights can now be made camera-relative.
  • Core Graphics - There is a new group of Edit functions for CylinderKey.
  • Core Graphics - Conditional includes and references are now available.
  • Core Graphics - Visualize now supports 2D image export. A full list of exportable formats is available here.
  • Sprockets - Added fixed framerate interface
  • Sprockets - Operators can now be bound to individual mouse buttons to allow compositing of operations.
  • Exchange - Added Exchange::CADModel which inherits from CADModel so users can get underlying A3DAsmModelFile pointer.
  • Exchange - Exchange::ExportPRCOptionsKit has new functions for attribute and BRep removal for export.
  • Exchange - Exchange::ExportJTOptionsKit has new functions controlling PMI export.
  • Exchange - Exchange::ImportOptionsKit has new SetUnigraphicsFittedCamera function.
  • Exchange - Added the cc_exchange project to demonstrate how to use Exchange from C#
  • Publish - Links can now be added to pages via the Publish::LinkKit object

  •  Publish - New Publish::DocumentKey class allows direct interaction with a PDF document.

  • Publish - New Publish::PageControl class allows direct interaction with a page in a PDF document. User can query fields on a PDF page, and perform other actions you could perform on a Publish::PageKit (add annotations, images, links, tables, text, and any template fields). Again, can generally not perform Unset and Show due to limitations of Publish API.

  • Publish - Publish::AnnotationKit has new functions for PRC attribute and BRep removal for PRC data embedded in a PDF.
  • Publish - Publish::ArtworkKit has new functions for default view preference, display preference, enabling PMI cross highlighting, and exporting semantic PMI information.

  • Many performance improvements

Functional changes:

  • Core Graphics - Several default attribute values have been changed. Those attributes are font, face color, edge color, vertex color, vertex size, window background color, window contrast color, window gradient orientation, color interpolation, and visibility.
  • Core Graphics - The rendering algorithm enums have been moved to the Subwindow class.
  • Core Graphics - The class structure of some unit enums have been flattened. For example, Marker::SizeUnits::Pixels is now Marker::SizeUnits::Pixels.
  • Core Graphics - Reference keys for segment references and geometry references have been collapsed into a single class called ReferenceKey.
  • Core Graphics - The old event MergeResults function has been removed in favor of the Event::Drop function. See Programming Guide section 10.2 for details.
  • Core Graphics - Attributes of a window segment can no longer be unset.
  • Core Graphics - A number of functions on the ColorInterpolationKit and ColorInterpolationControl have been renamed from 'Vertex' to 'Marker'. For example, UnsetMarkerIndex() is now UnsetVertexIndex().
  • Core Graphics - When modifying color using a MaterialKit, you can now adjust the alpha value independently of the RGB colors.
  • Sprockets - The Operator::AttachView function no longer exists. For most cases, OperatorControl::Push() will be the correct alternative.
  • Exchange - Exchange::ImportNotifier::GetCADModel() now returns a Exchange::CADModel object.
  • Publish - Publish::TemplateKit was merged into Publish::PageKit

Known issues

  • Overlay geometry drawn in hidden line mode does not work



Visualize HPS Beta 2.0

Plug-in compatibility information

Plug-in nameVersionWindowsLinuxOS XAndroidiOS
HOOPS Exchangev6.0yesyesnonono
HOOPS Publishv6.0yesnononono

Functional changes:

  • Sprockets operators have been restructured in favor of simplicity
  • HOOPS Exchange interfaces have been restructured
    • All but one of the old Exchange specific component objects have been removed, now the different types are distinguished by a type queried via GetComponentType() on the base Component class.
    • Exchange::Component has a new static GetKeyPath function for getting the KeyPath for an Exchange component (to facilitate highlighting).
    • Some new objects are added at the Sprockets level, namely CADModel, Capture and Exchange::Filter (these replace what were previously Exchange::ModelFile, Exchange::CADView, and Exchange::Filter)
    • CADModel (which replaced the ModelFile) has some new functionality (GetAllCaptures(), GetAllFilters(), GetActiveFilters(), GetModel()), removes the GetComponentFromEntity function
    • ImportOptionsKit contains nearly every import option.
    • All Exchange 6.0 export formats are supported.
    • Can now import PRC and U3D streams from PDFs.
    • New TimeMetadata type.
  • Portfolios and styles have been restructured. In general, anything related to portfolios has been moved to the PortfolioControl. Other styles (named and segment) exist at their former location but the names of functions to manipulate them have been trimmed. Examples:

    //before
    mySegmentKey.GetStyleControl().SetPortfolioStyle(pf);
    // after
    mySegmentKey.GetPortfolioControl().Set(pf);
    // before
    mySegmentKey.GetStyleControl().PushNamedStyle("foo");
    // after
    mySegmentKey.GetStyleControl().PushNamed("foo");

New features and enhancements:

  • Hardcopy support (export to 2D-PDF/Postscript, and Windows-specific hardcopy)
  • Font search interface
  • New code samples page, demonstrating common use cases
  • New sandboxes for newly supported platforms (listed below)
  • Geometry-level attribute interfaces

  • Setting priority now works at the geometry level
  • General stability improvements

Platform Notes:

  • Android, iOS, OSX, and Linux are now supported
  • Using Visualize on Windows now requires you to use Visual Studio 2012



Visualize HPS Beta 1.0

Plug-in compatibility information

Plug-in nameVersionWindowsLinuxOS XAndroidiOS
HOOPS Exchangev5.3yesnononono
HOOPS Publishv5.3yesnononono

Functional changes

  • Significant interface changes to styles and portfolios as a result of optimizations

New features and enhancements:

  • Entity level attributes (spotlight/distant-light/shell/mesh)
  • Significant improvements to HSF loading performance
  • Integration with HOOPS Publish
  • General stabilization improvements

Platform Notes:

  • The C++ and C# packages have been combined into a single package
  • Debug libraries have been added



Visualize HPS Alpha 1.0

Import support

  • HSF and formats supported by HOOPS Exchange, along with several image formats.

Export support

  • HSF export is supported in the Alpha release; we anticipate that both hardcopy and HOOPS Publish export will be included in the beta release.

Performance and usage notes

  • HSF import is not yet optimized.
  • Highlighting support is not yet optimized.
  • Highlighting at the sub-entity level is not yet supported (it is targeted for the Beta release).
  • The Sandbox examples set 'static' model by default in the 'model' segment after a model is loaded. This can boost rendering performance for certain models, but any changes underneath the model hierarchy will cause the 'static' model to get regenerated (per the documented behavior of 'static' model), and thus could cause a performance lag before the next update. However, the 'static' model does not get regenerated when using Core Graphics highlighting.

Compilation notes

  • All libraries are provided in release mode only
  • If your application includes any STL container classes (vector, map, list, etc.) before hps.h, you will need to disable iterator debugging in debug builds. This is already done in hps.h, so it's only a concern if the container header is included earlier. To disable iterator debugging, define the following macros before including the std container.
    • #define _SCL_SECURE
    • #define _HAS_ITERATOR_DEBUGGING 0
    • #define _ITERATOR_DEBUG_LEVEL 0