Release Notes

Visualize HPS 2015 Service Pack 1 Update 2

Library compatibility information:

Library nameVersionWindowsLinuxOS XAndroidiOSNotes
HOOPS Exchange2015 Service Pack 1      
HOOPS Publish2015 Service Pack 1      
.NET Framework4.0     4.5 required when using D3D_IMAGE_CANVAS
Parasolid27      
Qt5.3     Visual Studio 2012 uses Qt 5.1
SketchUp2015      
wxWidgets3.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.
  • Support for user-defined shaders has been removed.

Visualize HPS 2015 Service Pack 1 Update 1

Library compatibility information:

Library nameVersionWindowsLinuxOS XAndroidiOSNotes
HOOPS Exchange2015 Service Pack 1      
HOOPS Publish2015 Service Pack 1      
.NET Framework4.0     4.5 required when using D3D_IMAGE_CANVAS
Parasolid27      
Qt5.3     Visual Studio 2012 uses Qt 5.1
SketchUp2015      
wxWidgets3.0      

Functional changes

  • A bug has been fixed in our license validation

Visualize HPS 2015 Service Pack 1

Library compatibility information:

Library nameVersionWindowsLinuxOS XAndroidiOSNotes
HOOPS Exchange2015 Service Pack 1      
HOOPS Publish2015 Service Pack 1      
.NET Framework4.0     4.5 required when using D3D_IMAGE_CANVAS
Parasolid27      
Qt5.3     Visual Studio 2012 uses Qt 5.1
SketchUp2015      
wxWidgets3.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.
  • Subtrees can now be exported to 3D PDF documents.
  • Exchange components can now be reloaded in order to maintain synchronicity between PRC data and the Visualize scene graph.
  • 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

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 nameVersionWindowsLinuxOS XAndroidiOSNotes
HOOPS Exchange2015 Service Pack 1      
HOOPS Publish2015 Service Pack 1      
.NET Framework4.0     4.5 required when using D3D_IMAGE_CANVAS
Parasolid27      
Qt5.3     Visual Studio 2012 uses Qt 5.1
SketchUp2015      
wxWidgets3.0      


Visualize HPS 2015

Library compatibility information:

Library nameVersionWindowsLinuxOS XAndroidiOSNotes
HOOPS Exchange2015      
HOOPS Publish2015      
.NET Framework4.0     4.5 required when using D3D_IMAGE_CANVAS
Parasolid27      
Qt5.3     Visual Studio 2012 uses Qt 5.1
SketchUp2014      
wxWidgets3.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
  •   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 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


Visualize HPS 1.32

Library compatibility information:

Library nameVersionWindowsLinuxOS XAndroidiOSNotes
HOOPS Exchange7.2      
HOOPS Publish7.2      
.NET Framework4.0     4.5 required when using D3D_IMAGE_CANVAS
Parasolid27      
Qt5.1      
SketchUpSDK v7      
wxWidgets3.0      

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.2      
HOOPS Publish7.2      
.NET Framework4.0     4.5 required when using D3D_IMAGE_CANVAS
Parasolid27      
Qt5.1      
SketchUpSDK v7      
wxWidgets3.0      

New features and enhancements

Functional changes


Visualize HPS 1.21

Library compatibility information:

Library nameVersionWindowsLinuxOS XAndroidiOSNotes
HOOPS Exchange7.2      
HOOPS Publish7.2      
.NET Framework4.0     4.5 required when using D3D_IMAGE_CANVAS
Qt5.1      
SketchUpSDK v7      
wxWidgets3.0      

Functional changes

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


Visualize HPS 1.2

Library compatibility information:

Library nameVersionWindowsLinuxOS XAndroidiOSNotes
HOOPS Exchange7.2      
HOOPS Publish7.2      
.NET Framework4.0     4.5 required when using D3D_IMAGE_CANVAS
Qt5.1      
SketchUpSDK v7      
wxWidgets3.0      

New features and enhancements:

  • HPS::StyleControl has new overloads for Show(), ShowTop(), ShowAllSegment(), and ShowAllNamed() which return an array of HPS::StyleKey objects.
  • HPS::PortfolioKey has new GetDefinitionCount(), GetTextureDefinitionCount(), GetCubeMapDefinitionCount(), GetImageDefinitionCount(), GetNamedStyleDefinitionCount(), GetMaterialPaletteDefinitionCount(), GetGlyphDefinitionCount(), and GetLinePatternDefinitionCount() functions.
  • New methods are available for HPS::SelectionOptionsControl and HPS::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 HPS::SceneTree and HPS::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 HPS::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.
  • HPS::StyleKey::GetSource() has been replaced with HPS::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.1      
HOOPS Publishv7.1      
.NET Frameworkv4.0     v4.5 required when using D3D_IMAGE_CANVAS
Qtv5.1      


Visualize HPS 1.1

Library compatibility information:

Library nameVersionWindowsLinuxOS XAndroidiOSNotes
HOOPS Exchangev7.1     
HOOPS Publishv7.1     
.NET Frameworkv4.0     
Qtv5.1     

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
  • HPS::WalkOperator, HPS::SimpleWalkOperator, HPS::FlyOperator, and HPS::TurntableOperator have been added
  • STL and OBJ file importers are now provided
  • A new method, Optimize, is provided for HPS::ShellKit and HPS::ShellKey. The method takes a HPS::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 HPS::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 HPS::IOResult enum and the HPS::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 XAndroidiOSNotes
HOOPS Exchangev6.1     
HOOPS Publishv6.1     
.NET Frameworkv4.0     
Qtv5.1     

New features and enhancements

Functional changes

  • Operator controls now take an HPS::OperatorPtr instead of an HPS::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 HPS::SelectOperator and HPS::HighlightOperator now accept HPS::SelectionOptionsKit and HPS::HighlightOptionsKit, respectively.
  • The various SetFace*** methods in HPS::MaterialMappingControl will apply the setting to both the 'front' and 'back' faces of facetted geometry. (Previously, these methods only affect the 'front' faces.)
  • In HPS::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).
  • HPS::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 HPS::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

Library nameVersionWindowsLinuxOS XAndroidiOSNotes
HOOPS Exchangev6.1     
HOOPS Publishv6.1     

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 HPS::UpdateOptionsControl include HPS::Window::UpdateControl::CompileOnlyUpdate and HPS::Window::UpdateControl::ExhaustiveUpdate.
  • Core Graphics - A new HPS::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 HPS::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 HPS::Exchange::CADModel which inherits from HPS::CADModel so users can get underlying A3DAsmModelFile pointer.
  • Exchange - HPS::Exchange::ExportPRCOptionsKit has new functions for attribute and BRep removal for export.
  • Exchange - HPS::Exchange::ExportJTOptionsKit has new functions controlling PMI export.
  • Exchange - HPS::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 HPS::Publish::LinkKit object

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

  • Publish - New HPS::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 HPS::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 - HPS::Publish::AnnotationKit has new functions for PRC attribute and BRep removal for PRC data embedded in a PDF.
  • Publish - HPS::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, HPS::Marker::SizeUnits::Pixels is now HPS::Marker::SizeUnits::Pixels.
  • Core Graphics - Reference keys for segment references and geometry references have been collapsed into a single class called HPS::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 HPS::ColorInterpolationKit and HPS::ColorInterpolationControl have been renamed from 'Vertex' to 'Marker'. For example, UnsetMarkerIndex() is now UnsetVertexIndex().
  • Core Graphics - When modifying color using a HPS::MaterialKit, you can now adjust the alpha value independently of the RGB colors.
  • Sprockets - The Operator::AttachView function no longer exists. For most cases, HPS::OperatorControl::Push() will be the correct alternative.
  • Exchange - HPS::Exchange::ImportNotifier::GetCADModel() now returns a HPS::Exchange::CADModel object.
  • Publish - HPS::Publish::TemplateKit was merged into HPS::Publish::PageKit

Known issues

  • Overlay geometry drawn in hidden line mode does not work



Visualize HPS Beta 2.0

Plug-in compatibility information

Library nameVersionWindowsLinuxOS XAndroidiOSNotes
HOOPS Exchangev6.0     
HOOPS Publishv6.0     

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.
    • HPS::Exchange::Component has a new static GetKeyPath function for getting the HPS::KeyPath for an Exchange component (to facilitate highlighting).
    • Some new objects are added at the Sprockets level, namely CADModel, Capture and HPS::Exchange::Filter (these replace what were previously HPS::Exchange::ModelFile, HPS::Exchange::CADView, and HPS::Exchange::Filter)
    • HPS::CADModel (which replaced the HPS::ModelFile) has some new functionality (GetAllCaptures(), GetAllFilters(), GetActiveFilters(), GetModel()), removes the GetComponentFromEntity function
    • HPS::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 HPS::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

Library nameVersionWindowsLinuxOS XAndroidiOSNotes
HOOPS Exchangev5.3     
HOOPS Publishv5.3     

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