Logo

CEETRON SDK Suite

  • Home

Getting Started

  • Introduction
  • Quickstart
    • Installing CEETRON Envision
    • License System
    • How to Integrate into Your UI Toolkit
    • Getting Data into CEETRON Envision
      • FEA and CFD Data
      • Geometry Data
    • Sharing Data from CEETRON Envision
      • Ceetron Cloud
      • Ceetron Viewers
      • Report Component
    • Adding Features to Your Application
  • Support
  • Release Notes
    • Envision 2.0.0
      • New Features
        • CAE-1257 C++17 Standard
        • CAE-1245 Node.js version upgrade
        • CAE-1231 Add scalar result filtering to Web
        • CAE-1291 Update to version 1.9.1 of CEETRON Access
        • CAE-1294 Updated to TBB 2021.11
        • CAE-1245 Improved in-editor navigation of api documentation
      • Breaking changes
        • CAE-1254 Handling of default camera config for UG and CUG
        • CAE-1249 Refactor and consolidate bounding boxes
    • Envision 1.9.1
      • Fixed Bugs
        • CAE-1301 Fixed crash in older VTFx file when ray picking
    • Envision 1.9.0
      • Fixed Bugs
        • CAE-1253 CeeVTFx: Assert when calling SetBlock.blockType()
        • CAE-1252 CeeVTFx: C# casting not implemented
        • CAE-1269 Setting logarithmic mapping and range using properties, shows improper range
        • CAE-1251 CeeVTFx: Transparent logo not supported
      • New Features
        • CAE-42 Color vectors by any scalar (not just the one shown as fringes)
        • CAE-1113 CeeVTFx: Added support for cross sections
        • CAE-916 Web: Controlling Label visibility with an occluder object
        • CAE-1244 Added support for Python 3.11
    • Envision 1.8.2
      • Fixed Bugs
        • CAE-1302 Cutting plane scalar filtering crashes on part without results
    • Envision 1.8.1
      • Fixed Bugs
        • CAE-1292 Isovolume with mesh visualization: crash when mirroring is activated
    • Envision 1.8.0
      • Fixed Bugs
        • CAE-1172 Isovolume: dirty visualization when part is hidden
        • CAE-1241 Parts in remeshed models that are invisible are not properly updated when changing states
        • CAE-1173 DataReader: Displacement scale factor not applied
        • CAE-1246 cee::vtfx::close() does not release file handle if close fails
        • CAE-1248 CeeVTFx: Missing methods in C#
      • New Features
        • CAE-1000 Scalar filtering for cutting planes
        • CAE-6 ImageResource should support transparent images
        • CAE-1226 Add transformationMatrix for RemoteModel(Web) and UnstructGridModel(Desktop)
        • CAE-1242 Add VTFx case description for UG
    • Envision 1.7.1
      • Fixed Bugs
        • CAE-1239 Missing highlighting of extracted features
    • Envision 1.7.0
      • Fixed Bugs
        • CAE-1207 Some sections are missing from Shell elements in LS-Dyna
        • CAE-1213 Web: “Clipped” visualization artifacts during model update
      • New Features
        • CAE-874 RemoteModel: Big performance improvements with many (>10k) parts
        • CAE-1201 VTU: Added control for how the Node Welding should be done
        • CAE-1222 Added support for specifying a custom legend title in the ConstantRemoteModel
        • CAE-1230 Updated to CEETRON Access 1.7 and ABAQUS 2023
    • Envision 1.6.0
      • Fixed Bugs
        • CAE-1196 QueryNodeScalarResult does not support calculator results
        • CAE-1200 Crash in loadState() when changing section configuration
        • CAE-1203 Navigation cube cannot be used to set the camera inside the OpenModelCallback
        • CAE-1209 DataProvider: setCreateDerivedResults(false) does not work when adding results in pollForChanges
        • CAE-1211 ImportCAE: For some file formats undefined results are reported as 0
        • CAE-1210 UgServer crashes on some old legacy VTFx files
      • New Features
        • CAE-1123 Custom labels for color legend tickmarks
        • CAE-1193 Add constant fluid viscosity property to MassedParticleParameters
        • CAE-1202 Added ArrowGenerator and fix typings of cee.utils
        • CAE-1206 Add documentation to .d.ts file
        • CAE-1208 Do not expose the license code when using the HOOPS Exchange plugin
    • Envision 1.5.0
      • Fixed Bugs
        • CAE-1197 initString not passed along while using defaultResultCalculatorDefinitions
      • New Features
        • CAE-531 Add support for WebGL 2 to Envision Web
        • CAE-741 Add missing part and element info to queries
        • CAE-1131 Added part setting to disable feature extraction for that part
        • CAE-1177 Added coloring of elements based on set, element type and user property
        • CAE-1187 Added documentation about cug in the Envision Web documentation
        • CAE-1191 Added example and documentation on how to use multiple views in Envision Web
        • CAE-1195 Support for MacOS ARM64 (M1/M2) for UG Server
    • Envision 1.4.0
      • Fixed Bugs
        • CAE-1186 oglWinPosFromClientCoord did not take padding into account
      • New Features
        • CAE-1119 HOOPS Exchange Data Provider in CEETRON Envision Desktop distributions
        • CAE-1086 Finding visible parts within a screen region
        • CAE-932 Generators and examples for mapping results on a geometry of any shape in cee.ug.RemoteModel
        • CAE-451 Add setUseFirstOrderElementNodesOnly() to RemoteModel
        • CAE-1165 Web: Add PartSettings::disableElementSetFiltering
        • CAE-1138 Legacy plotting: Add support for old embedded 2d plots
        • CAE-197 Doc: Add topic on using multiple views
    • Envision 1.3.2
      • Fixed Bugs
        • CAE-1133 CugComposer requires a desktop license to produce snapshot images
        • CAE-1148 Handling of undefined vector results as regular grid vectors on cutting planes was in some corner cases wrong
        • CAE-1149 Creating a result calculator would cause an exception due to changes in CAE-1108
    • Envision 1.3.1
      • Fixed Bugs
        • CAE-1129 CugComposer: Crash when exporting models with animations and expanded beams
        • CAE-1130 Missing Data Provider Framework examples in Envision Desktop distribution
    • Envision 1.3.0
      • Fixed Bugs
        • CAE-992 Cannot read DataResultVisibility manually from the data source
        • CAE-1058 Envision Web UgServer C++ redist needs updating
        • CAE-1062 Removed cutting plane can still be interacted with
        • CAE-1101 Data providers: Using notifyResultAdded() might in some cases crash the server/host app
        • CAE-1107 Assert when having a model with a single point
        • CAE-1111 Setting displacement scale factor to 0 or very small number breaks deformation
        • CAE-1118 CugComposer: Export of query information for models with expanded beams did not work as expected
      • New Features
        • CAE-795 Project vectors on model surfaces, like it is done for cutting planes
        • CAE-1002 Welding node support for VTK files to allow proper multi-part datasets
        • CAE-1097 CaeImport: Add reader for COMSOL section-wise files
        • CAE-1098 CaeImport: Add reader for STAR-CCM result files
        • CAE-1102 Update C# examples in dist with newer .NET
        • CAE-1103 New examples for the Data Provider Framework
        • CAE-1104 Allow customization for OffscreenCanvasLabelDrawer.drawOntoCanvas method
        • CAE-1105 Add more triangle and edge data to QueryFeatureExtractionSurface
        • CAE-1108 Support initial empty model and adding/modifying geometries in Data Providers
        • CAE-1110 QueryMinMax - get min/max items for a given frame only
        • CAE-1112 Add support for Symmetric Tensor Results in OpenFOAM Data provider
        • CAE-1115 Add CUG Server documentation
        • CAE-1116 Add a root folder with zip file name as the root of the Envision Web archive
    • Envision 1.2.2
      • New version of Ceetron Access
    • Envision 1.2.1
      • Fixed Bugs
        • CAE-1065 Can get null reference on mouse wheel while RemoteModel is loading
        • CAE-1067 ImportCAE OpenFOAM reader crashes on models with polyhedron elements
        • CAE-1071 VTFx component: Exported file can’t be opened in the viewer (wrong vendor id)
        • CAE-1072 Simple null vectors would sometimes not be positioned correctly on some hardware platforms
    • Envision 1.2.0
      • Fixed Bugs
        • CAE-920 UgModule is missing some exports
        • CAE-921 UgServer is sometimes confused about the current state id after applying a VTFx case
        • CAE-925 PVD/VTM/VTU: Displacement vector fields are not interpreted as displacements result unless their name starts with “displacement”
        • CAE-947 UgServer: Memory is not freed by the c++ heap manager on Linux
        • CAE-962 Updating a cug model + removing another causes assert error
        • CAE-964 Asset error on update cug part then call getBoundingBoxForPart()
        • CAE-984 CugComposer crashes on VTFx files with IndexedFaceSets
        • CAE-1019 Reference counting did not work properly from Python
        • CAE-1039 ExportVTFx uses wrong vendor code, can’t open in Viewer
        • CAE-1049 CugComposer cannot pass unicode characters in arguments paths
      • New Features
        • CAE-782 Camera changed callback
        • CAE-802 Enable/disable mirroring per part
        • CAE-810 Specify a background color for color legends
        • CAE-882 Vectors fields visualization: optionally display a vector a a point when length is 0
        • CAE-918 Add visible property to cug.ParticleTraceGroup
        • CAE-919 Add method for getting BoundingBox for single part in ConstantRemoteModel
        • CAE-926 Add support for computing fit view eye position from a bounding box
        • CAE-931 Web: Query to get feature extraction data
        • CAE-949 Improve “Assertion failed” reporting mechanism
        • CAE-953 Add support for custom view layouts
        • CAE-971 VTK: Reader option to provide all vector results as displacements
        • CAE-988 Add support for supplying license code as environment variable to CugComposer
        • CAE-1008 Added option to disable spatial partitioning when optimizing parts in UnstructGridModel
        • CAE-1035 Added support for CrinkleCut cutting planes of 2d elements
        • CAE-1046 CugServer: Support absolute paths for CONFIGURE_EXPRESS_APP_JS_FILE
    • Envision 1.1.0
      • Fixed Bugs
        • CAE-756 VisualizationPartQuery: Crash when computing surface path on nodes connected to null-surface triangles
        • CAE-852 Default value for MODEL_PATH in server/UgServer/Main.js is wrong
        • CAE-853 CugServer build fails for typescript 3.9
        • CAE-868 Web: BuildYourFirstApp/2-Viewer: The initial camera is not set as intended
        • CAE-878 ug.ScalarSettings.scalingConstantTerm and scalingFirstDegreeTerm not applied to legends
        • CAE-880 Assertion failed if using continuous legend bar and setting same min and max range values
        • CAE-892 HitItem returns undefined intersectionPointResult value for cutting plane when having parts without results
        • CAE-902 CugServer: CEW_CUGS_CONFIGURE_EXPRESS_APP_JS_FILE should be relative to current dir rather than Main.js
      • New Features
        • CAE-848 cee.ug.ScalarSettings: Custom continuous color scheme support
        • CAE-867 Element edge, face and node DataSets
        • CAE-870 Add cug-server to examples docker installation
        • CAE-876 cee.ug.CuttingPlane: Eye-lift support for cutting planes
        • CAE-879 Added Data Provider Framework documentation to the Envision Desktop documentation
        • CAE-881 The web ugServer is now built with CentOS7 and only requires glibc 2.17
        • CAE-885 Add support for serving web apps through CUG server
        • CAE-888 Add DataProviderFramework/ResultCalculatorFramework to Envision Desktop distribution
        • CAE-895 Add interface name to SimulationInfo
        • CAE-904 cee.ug.CuttingPlane: Support for turning the light on/off
        • CAE-907 Add OpenFOAM data provider to Envision Desktop distribution
        • CAE-910 Upgrade Envision Desktop and Web to use CEETRON SAM 1.0.1
    • Envision 1.0.0
      • Changes
        • Rename Ceetron Cloud Components (C3) to CEETRON Envision for Web
        • Rename Ceetron Desktop Components to CEETRON Envision for Desktop
        • New unified documentation for all CEETRON products (including Envision Desktop and Web)
        • New unified HOOPS license system in Envision (Web and Desktop)
        • Changes to versioning
        • Changes to environment variables
      • Fixed Bugs
        • CAE-831 Missing vector filtering “skip by” when mapped to iso/cut
        • CAE-826 Query of results from VTFx files which reference result values by ID did not work
        • CAE-811 [Web] ug.QueryNodeInfo returned -1 for node id if displacements were enabled
        • CAE-801 [Web] VTFx properties did not apply info on visible sets and how to show them properly
        • CAE-762 Wrong visualization of mirrored parts on a cutting plane
      • New Features
        • CAE-850 Added support for Python 3.7-3.10 in one unified distribution
        • CAE-774 [Web] Add support for dynamic symmetric arrows for vectors
        • CAE-698 [Web] Client-side element picking
        • CAE-827 [Web] Add interfaceName to cee.ug.SimulationInfo
        • CAE-760 [Web] Create new markup part for lines
        • CAE-740 Support for polyhedrons in CEETRON Envision VTFx component
        • CAE-794 Add result unit information to VTFx export and Envision Desktop
        • CAE-836 Add robustness for empty DataPartVector/DataPartScalar

Sample Code

  • Tutorials
    • Simple Model with Two Triangles
    • Simple Model with Results
    • Model Specification
    • Scalar Settings
    • Vector Settings
    • Part Settings
    • Cutting Plane
    • Isosurface
    • Isovolume
    • Filtering with Element Sets
    • Custom DataReader
    • Highlight Clicked Parts
    • Geometry Model
    • Geometry Model with Texture
    • Geometry Model with Geometric Primitives
    • Markup Model
    • Custom Navigation Handler
    • Create Word Report
    • Create Overlay 2D Plot
  • Code Examples
    • Simple Model with Two Triangles
    • Simple Model with Results
    • Model Specification
    • Scalar Settings
    • Vector Settings
    • Part Settings
    • Cutting Plane
    • Isosurface
    • Isovolume
    • Filtering with Element Sets
    • Custom DataReader
    • Highlight Clicked Parts
    • Geometry Model
    • Geometry Model with Texture
    • Geometry Model with Geometric Primitives
    • Markup Model
    • Custom Navigation Handler
    • Create Word Report
    • Create Overlay 2D Plot

Programming Guide

  • General Concepts
    • License System
    • Main Concepts
      • View
      • Model
    • Model
      • UnstructGridModel
      • MarkupModel
      • GeometryModel
    • Logging
    • Smart Pointers
    • Debug vs. Release
    • C# Users: Features and Differences
      • Documentation
      • Namespaces
      • Properties
      • Inheritance
      • Deployment
    • Python Users: CEETRON Envision for Python
      • Setting up the Environment
        • Prerequisites
        • License
        • Configure your Installation
      • Example Scripts
      • Documentation
        • Modules
      • Getting Started with CEETRON Envision for Python
      • From C++ Documentation to Actual Python Code
        • Inheritance
        • Identity Operator
      • Deployment
  • UI Toolkit Integrations
    • Qt
      • Creating a Viewer
      • Example Programs
    • Win32
      • Creating a Viewer
      • Example Programs
    • MFC
      • Creating a Viewer
      • Example Programs
    • Windows Forms
      • Creating a Viewer
      • Example Programs
    • WPF
      • Creating a Viewer
      • Example Programs
    • wxWidgets
      • Creating a Viewer
      • Example Programs
  • View and Navigation
    • View Overview
      • Models
      • Camera
      • Overlay Items
      • Clipping
      • Background
      • Image Rendering
      • Bounding Box
    • Navigation and Input Handlers
    • Using the Navigation Cube
    • Multiple Views
      • Creating Multiple Views
      • Synchronizing Multiple Views
      • Example
  • Unstructured Grid
    • Getting Data into UnstructGridModel
      • 1: Create Your Own Data Reader
      • 2: Using VTFx Files
      • 3: Use the ImportCae Component
      • 4: Use a Data Provider
      • 5: Manually Populate the DataSource
    • Efficient Representation of Your Data
      • Analysis with Multiple States
      • Multiple Geometries
    • Animation
      • Setting up the Animation
        • State Animation
        • Modeshape Animation
        • Particle Trace Animation
        • Cutting Plane Animation
      • Running the Animation
        • State Animation and Modeshape Animation
        • Particle Trace Animations
    • Cutting Planes
      • Tutorial
    • Isosurfaces
      • Tutorial
    • Particle Traces
    • Scalar Results
      • Range
      • Color Mapping and Scheme
      • Legend
      • Filtering
      • Tutorial
    • Vector Results
      • Tutorial
  • Share
    • Ceetron Cloud: Add a Send-To-Cloud Button to Your App
      • Examples
    • Ceetron VTFx File Format
    • Share Everywhere with VTFx Files and Ceetron Viewers
  • Report
    • Create Interactive Reports Directly from Your Application
      • Create the Template
      • Create the Repository
      • Create the Report
      • Examples
      • Tutorials
    • Creating a Report Template
      • MS Office Templates
      • Using the Office Addin
      • HTML Templates
    • Snapshots
      • Image Snapshot
      • 3D Model Snapshot
      • Table Snapshot
    • Tag Behavior and Syntax
      • Static Tags
      • Generic Tags
      • Reference Tags
    • Field Values
      • Tag Syntax
      • Field Value Set
  • Import CAE
  • Geometry Model
  • 2D Plotting
  • Data Provider Plugins
    • Introduction
    • Plugins
      • OpenFOAM Plugin
        • Overview
        • Available Options
        • Use in Envision for Desktop
        • Use in Envision Demo Analyzer Desktop
        • Use in Envision for Web
        • Changelog
      • HOOPS Exchange Plugin
        • Overview
        • Use in Envision for Desktop
        • Use in Envision Demo Analyzer Desktop
        • Use in Envision for Web

API References

  • Components Overview
  • Class Index
    • cee
      • cee::AppLogging
      • cee::AssertHelper
      • cee::BoundingBox
      • cee::CodeLocation
      • cee::Color3f
      • cee::Color4f
      • cee::CoreComponent
      • cee::FileSystem
      • cee::Image
      • cee::ImageIoJpeg
      • cee::ImageIoPng
      • cee::ImageResources
      • cee::InitializationOptions
      • cee::Instance
      • cee::LogDestination
      • cee::LogDestinationAdapter
      • cee::LogDestinationConsole
      • cee::LogDestinationFile
      • cee::LogEvent
      • cee::LogManager
      • cee::Mat4d
      • cee::Plane
      • cee::PropertySet
      • cee::PropertySetCollection
      • cee::PtrRef
      • cee::Ray
      • cee::RefCountedObject
      • cee::SharedMemorySymmetricTensor
      • cee::Str
      • cee::SymmetricTensor
      • cee::Timer
      • cee::Variant
      • cee::Vec2d
      • cee::Vec2f
      • cee::Vec3d
      • cee::Vec3f
    • cee::app
      • cee::app::AppComponent
      • cee::app::ElementToNodeResultGenerator
      • cee::app::MinMaxAvgValueResultGenerator
      • cee::app::Models
      • cee::app::NodeToElementResultGenerator
      • cee::app::Parts
      • cee::app::Plots
      • cee::app::Results
      • cee::app::Selection
      • cee::app::Situations
      • cee::app::States
      • cee::app::ViewInfo
      • cee::app::Views
    • cee::exp
      • cee::exp::ExportCgeo
      • cee::exp::ExportComponent
      • cee::exp::ExportConstantRemoteModel
      • cee::exp::ExportDataSourceVTFx
      • cee::exp::ExportVTFx
      • cee::exp::ExportWavefrontObj
      • cee::exp::PropertyBuilderPlot2d
      • cee::exp::PropertyBuilderVTFx
    • cee::geo
      • cee::geo::Data
      • cee::geo::DataGenerator
      • cee::geo::DataIndexedPolylines
      • cee::geo::DataIndexedTriangles
      • cee::geo::DataPoints
      • cee::geo::DataTriangleFan
      • cee::geo::DataTriangleStrip
      • cee::geo::Effect
      • cee::geo::EffectColor
      • cee::geo::EffectEyeLift
      • cee::geo::EffectFrontAndBackColor
      • cee::geo::EffectFrontAndBackOpacity
      • cee::geo::EffectHalo
      • cee::geo::EffectLighting
      • cee::geo::EffectLineWidth
      • cee::geo::EffectOpacity
      • cee::geo::EffectPointSize
      • cee::geo::EffectPolygonOffset
      • cee::geo::EffectTexture
      • cee::geo::GeometryComponent
      • cee::geo::GeometryModel
      • cee::geo::HitItem
      • cee::geo::Part
      • cee::geo::PartCollection
      • cee::geo::PartHitItems
      • cee::geo::PartSettings
      • cee::geo::TextureCoordinates
    • cee::imp
    • cee::imp::cae
      • cee::imp::cae::DataSourceCae
      • cee::imp::cae::DataSourcePhaseResponse
      • cee::imp::cae::ImportCaeComponent
      • cee::imp::cae::ReaderInfo
      • cee::imp::cae::ReaderSettings
      • cee::imp::cae::ReaderSettingsDataProvider
      • cee::imp::cae::ReaderSettingsMarc
      • cee::imp::cae::ReaderSettingsOpenFoam
      • cee::imp::cae::ReaderSettingsPtc
      • cee::imp::cae::ReaderSettingsVtk
      • cee::imp::cae::StateLinearCombination
    • cee::ogl
      • cee::ogl::OpenGLComponent
    • cee::plt
      • cee::plt::AxisSettings
      • cee::plt::Curve
      • cee::plt::MarkerLine
      • cee::plt::OverlayPlot
      • cee::plt::Plot2dComponent
    • cee::rep
      • cee::rep::FieldValueSet
      • cee::rep::ReportComponent
      • cee::rep::ReportCreatorHtml
      • cee::rep::ReportCreatorPowerPoint
      • cee::rep::ReportCreatorWord
      • cee::rep::Repository
      • cee::rep::Snapshot
      • cee::rep::Table
    • cee::ug
      • cee::ug::BackgroundPropertyHandler
      • cee::ug::BulkCalculation
      • cee::ug::BulkValues
      • cee::ug::CameraPropertyHandler
      • cee::ug::ColorMapper
      • cee::ug::ColorMapperContinuousPropertyHandler
      • cee::ug::ColorMapperFilledContoursPropertyHandler
      • cee::ug::ColorMapperFilledContoursUniformPropertyHandler
      • cee::ug::ContourLines
      • cee::ug::CustomResultFunction
      • cee::ug::CuttingPlane
      • cee::ug::CuttingPlaneAnimation
      • cee::ug::CuttingPlaneData
      • cee::ug::CuttingPlanePropertyHandler
      • cee::ug::DataElements
      • cee::ug::DataElementSet
      • cee::ug::DataElementSetBuilder
      • cee::ug::DataElementSetGenerator
      • cee::ug::DataElementSetItem
      • cee::ug::DataGeometry
      • cee::ug::DataNodes
      • cee::ug::DataNodeSet
      • cee::ug::DataNodeSetGenerator
      • cee::ug::DataNodeSetItem
      • cee::ug::DataPart
      • cee::ug::DataPartDisplacement
      • cee::ug::DataPartScalar
      • cee::ug::DataPartSymmetricTensor
      • cee::ug::DataPartVector
      • cee::ug::DataPartVisibility
      • cee::ug::DataReader
      • cee::ug::DataResultDisplacement
      • cee::ug::DataResultGroup
      • cee::ug::DataResultScalar
      • cee::ug::DataResultSymmetricTensor
      • cee::ug::DataResultTransformation
      • cee::ug::DataResultVector
      • cee::ug::DataResultVisibility
      • cee::ug::DataSource
      • cee::ug::DataSourceDirectory
      • cee::ug::DataSourceInterface
      • cee::ug::DataSourceMemory
      • cee::ug::DataSourceMerged
      • cee::ug::DataSourceReader
      • cee::ug::DataSourceVTF
      • cee::ug::DataSourceVTFx
      • cee::ug::DataState
      • cee::ug::DataStateSpec
      • cee::ug::DisplacementSettings
      • cee::ug::Element
      • cee::ug::ElementHighlighter
      • cee::ug::ElementsQuery
      • cee::ug::ElementUserPropertyInfo
      • cee::ug::Error
      • cee::ug::HitItem
      • cee::ug::HitItemCollection
      • cee::ug::Isosurface
      • cee::ug::IsosurfaceData
      • cee::ug::IsosurfacePropertyHandler
      • cee::ug::Isovolume
      • cee::ug::IsovolumeData
      • cee::ug::IsovolumePropertyHandler
      • cee::ug::MirrorSettings
      • cee::ug::MirrorSettingsPropertyHandler
      • cee::ug::ModelSettings
      • cee::ug::ModelSettingsPropertyHandler
      • cee::ug::ModelSpec
      • cee::ug::ModeShapeAnimation
      • cee::ug::OverlayColorLegend
      • cee::ug::OverlayColorLegendPropertyHandler
      • cee::ug::OverlayImagePropertyHandler
      • cee::ug::OverlayPlotCurvePropertyHandler
      • cee::ug::OverlayPlotPropertyHandler
      • cee::ug::PartHitItems
      • cee::ug::ParticleTraceData
      • cee::ug::ParticleTraceGroup
      • cee::ug::ParticleTraceGroupPropertyHandler
      • cee::ug::ParticleTraceUtils
      • cee::ug::PartInfo
      • cee::ug::PartSettings
      • cee::ug::PartSettingsIterator
      • cee::ug::PartSettingsPropertyHandler
      • cee::ug::PartSettingsTexture
      • cee::ug::Progress
      • cee::ug::PropertyApplierPlot2d
      • cee::ug::PropertyApplierVTFx
      • cee::ug::PropertyBuilder
      • cee::ug::ResultCalculatorParams
      • cee::ug::ResultInfo
      • cee::ug::ResultSelectionPropertyHandler
      • cee::ug::ResultsQuery
      • cee::ug::ResultsQueryItem
      • cee::ug::ResultsQueryResult
      • cee::ug::ResultsQueryResultPosition
      • cee::ug::ScalarSettings
      • cee::ug::ScalarSettingsPropertyHandler
      • cee::ug::SectionCategoryInfo
      • cee::ug::SectionGroupInfo
      • cee::ug::SectionInfo
      • cee::ug::SetInfo
      • cee::ug::SetPropertyHandler
      • cee::ug::SimulationInfo
      • cee::ug::Situation
      • cee::ug::SituationIo
      • cee::ug::StateGroupInfo
      • cee::ug::StateInfo
      • cee::ug::StateSelectionPropertyHandler
      • cee::ug::SurfacePathQuery
      • cee::ug::UnstructGridComponent
      • cee::ug::UnstructGridModel
      • cee::ug::VectorSettings
      • cee::ug::VectorSettingsPropertyHandler
      • cee::ug::ViewClippingPlanePropertyHandler
      • cee::ug::ViewerPropertyHandler
      • cee::ug::VisualizationParticleTraceQuery
      • cee::ug::VisualizationPartQuery
      • cee::ug::VTFxFileBrowser
      • cee::ug::VTFxMemoryFile
    • cee::vis
      • cee::vis::Background
      • cee::vis::BoxLocator
      • cee::vis::Camera
      • cee::vis::CameraAnimation
      • cee::vis::CameraInputHandler
      • cee::vis::CameraInputHandlerWalk
      • cee::vis::CameraInputHandlerZoom
      • cee::vis::Clipping
      • cee::vis::ColorTableFactory
      • cee::vis::Font
      • cee::vis::ForwardingOpenGLContext
      • cee::vis::LegacyMath
      • cee::vis::MarkupModel
      • cee::vis::MarkupModelHitItem
      • cee::vis::MarkupModelHitItemCollection
      • cee::vis::MarkupPart
      • cee::vis::MarkupPartArrows
      • cee::vis::MarkupPartFixedSizeArrow
      • cee::vis::MarkupPartFixedSizeGlyph
      • cee::vis::MarkupPartFixedSizeSphere
      • cee::vis::MarkupPartInstancedGeometry
      • cee::vis::MarkupPartLabels
      • cee::vis::MarkupPartLines
      • cee::vis::MarkupPartPoints
      • cee::vis::MarkupPartText3d
      • cee::vis::MarkupPartTriangles
      • cee::vis::MarkupText3dItem
      • cee::vis::Model
      • cee::vis::MouseEvent
      • cee::vis::OpenGLContextGroup
      • cee::vis::OpenGLInfo
      • cee::vis::Overlay
      • cee::vis::OverlayAxisCross
      • cee::vis::OverlayCategoryLegend
      • cee::vis::OverlayColorLegendContinuousDomain
      • cee::vis::OverlayImage
      • cee::vis::OverlayItem
      • cee::vis::OverlayNavigationCube
      • cee::vis::OverlayTextBox
      • cee::vis::PerformanceInfo
      • cee::vis::PlaneLocator
      • cee::vis::ScalarMapper
      • cee::vis::ScalarMapperContinuous
      • cee::vis::ScalarMapperContinuousDomain
      • cee::vis::ScalarMapperContinuousPiecewise
      • cee::vis::ScalarMapperFilledContours
      • cee::vis::ScalarMapperFilledContoursUniform
      • cee::vis::TransparencyMode
      • cee::vis::TrueTypeFont
      • cee::vis::View
      • cee::vis::Viewer
      • cee::vis::ViewerUIFramework
      • cee::vis::VisualizationComponent
      • cee::vis::WheelEvent
    • cee::win
      • cee::win::OpenGLContextSpecWin
      • cee::win::ViewerWin32
      • cee::win::ViewerWindowed
      • cee::win::WinComponent

Envision Frameworks

  • VTFx Component
    • Getting Started
    • Topics
      • Writing VTFx Files
      • Tutorial: My First VTFx
      • VTFx Properties
      • Ceetron Cloud: Add a Send-To-Cloud Button to Your App
        • Examples
    • Code Examples
      • Minimal VTFx File
      • Simple VTFx File
      • Advanced Example
      • Read VTFx File
      • Append Case to VTFx
      • Append Data to VTFx
      • Cutting Plane and Isosurface
      • Adaptive Topology
      • Two Geometries
      • Send to Cloud
      • Cross Sections
      • Cross Sections (All types)
      • Polyhedron
    • API Reference
      • cee::vtfx
        • cee::vtfx::Block
        • cee::vtfx::Case
        • cee::vtfx::CrossSectionsBlock
        • cee::vtfx::Database
        • cee::vtfx::ElementBlock
        • cee::vtfx::File
        • cee::vtfx::FileSettings
        • cee::vtfx::GeometryBlock
        • cee::vtfx::GeometryInfoBlock
        • cee::vtfx::NodeBlock
        • cee::vtfx::ResultBlock
        • cee::vtfx::ResultValuesBlock
        • cee::vtfx::SetBlock
        • cee::vtfx::SetItemGroup
        • cee::vtfx::StateInfoBlock
        • cee::vtfx::TransformationResultBlock
        • cee::vtfx::TransformationResultValuesBlock
        • cee::vtfx::VTFxComponent
  • Data Provider Framework
    • Introduction
    • Programming Guide
      • Getting Started
      • Creating a DataProviderPlugin
      • Using Data Providers in Envision for Web
      • Using Data Providers in Envision Analyzer
    • Change Log
    • API Reference
      • C
      • D
      • E
      • G
      • I
      • L
      • M
      • N
      • R
      • S
      • T
      • U
      • V
      • _
  • Result Calculator Framework
    • Introduction
    • Programming Guide
      • Getting Started
      • Creating a ResultCalculatorPlugin
      • Using Result Calculator in Envision for Web
      • Using Result Calculator in Envision Analyzer
    • Change Log
    • API Reference
      • CRCCalculatorMetaData
        • Functions
        • Detailed Description
      • CRCCalculatorParams
        • Functions
        • Detailed Description
      • CRCError
        • Functions
        • Detailed Description
      • CRCHostMetaData
        • Functions
        • Detailed Description
      • CRCInitOptions
        • Functions
        • Detailed Description
      • CRCLogHelper
        • Type Aliases
        • Functions
        • Detailed Description
      • CRCResultCalculator
        • Functions
        • Detailed Description
      • CRCResultInfo
        • Functions
        • Detailed Description
      • CRCString
        • Functions
        • Detailed Description
      • CRCUtils
        • Functions
        • Detailed Description
      • CRC_FrameworkServices
        • Fields
        • Detailed Description
      • CRC_RegisterCalculatorParams
        • Fields
        • Detailed Description
CEETRON Envision for Desktop
  • View and Navigation
  • Navigation and Input Handlers
Previous Next

Navigation and Input Handlers

CEETRON Envision has built in support for manipulating the camera from input events (typically mouse interaction).

The Camera has an input handler, CameraInputHandler, that handles user input (mouse and keyboard events) and manipulates the camera based on these events. This is used to move the camera around the scene to inspect the model.

CEETRON Envision provides two default Input Handlers:

  • CameraInputHandlerZoom: Ceetron style zoom navigation. This is the default navigation handler.

  • CameraInputHandlerWalk: Ceetron style walk navigation.

The built-in navigation schemes are using Pan on left mouse button, Rotate on right mouse button and Zoom/Walk on mouse wheel (or both left and right mouse buttons).

The easiest way to add a custom navigation scheme is to derive from the CameraInputHandler class and override the navigationTypeFromInputState() method. The navigationTypeFromInputState() method should return the wanted navigation type (PAN, ROTATE, WALK, ZOOM) based on the mouse and keyboard input state.

The wheelNavigationType() determines the use of the mouse wheel. Usually WALK or ZOOM.

In more advanced cases the user can also override the mousePressEvent(), mouseMoveEvent(), mouseReleaseEvent() and wheelEvent() methods and create a fully custom user experience.

Example Custom Input Handler

//--------------------------------------------------------------------------------------------------
// A custom input handler implementing our navigation scheme
//--------------------------------------------------------------------------------------------------
class MyInputHandler : public cee::vis::CameraInputHandler
{
protected:

    // Determine the navigation type from the given input state
    // Out custom scheme uses the left mouse button for navigation (reserving the right for e.g. context menu).
    // - Left button + CTRL = PAN
    // - Left button + Shift = Rotate
    // - Left button + CTRL and Shift = Zoom
    // - Mouse wheel = zoom
    virtual NavigationType  navigationTypeFromInputState(cee::vis::MouseButtons mouseButtons, cee::vis::KeyboardModifiers keyboardModifiers) const
    {
        if (mouseButtons == cee::vis::LeftButton && keyboardModifiers == cee::vis::ControlModifier)
        {
            return PAN;
        }
        else if (mouseButtons == cee::vis::LeftButton && keyboardModifiers == cee::vis::ShiftModifier)
        {
            return ROTATE;
        }
        else if ((mouseButtons == cee::vis::LeftButton) && (keyboardModifiers == (cee::vis::ControlModifier | cee::vis::ShiftModifier)))
        {
            return ZOOM;
        }

        return NONE;
    }

    // Zoom for the mouse wheel
    virtual NavigationType wheelNavigationType() const
    {
        return CameraInputHandler::ZOOM;
    }
};

Connecting Your Own Custom Input Handler

// Setup the camera to use our own custom navigation input handler
m_view->camera().setInputHandler(new MyInputHandler);

Tutorial

img

Visualization: Create a Custom Navigation Handler to Support a Custom Navigation Scheme

Previous Next

© Copyright 2024, Tech Soft 3D

Select version v: 2.0
Versions
1.0
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
Return to top