Change log


spatix v022.007 (2022-07-20, techsupport till 2023-09-01)


  • New feature: Parallel release of Spatix built with the latest MS Visual Studio 2022 and with updated dependency libraries to the latest supported and compatible versions
  • Qt 5.15.4
  • GDAL 3.5.0 (supports even more vector formats)
  • Proj 9.0.0
  • ERDAS ECW 5.5.0, etc...
  • new Spatix distributive package still includes MSVC2013 crt120 libraries by now so that to preserve old Terra-apps compatibility
  • New feature: Support for CRS (Coordinate Reference Systems) transformations in Spatix while working with WMS layers and vector import/export via GDAL library
  • SPX file now has its own settings for CRS being used — configured via "Edit › CAD File Settings › CRS"
  • CRS definition: several CRS definition formats are supported — see tooltip over "Edit › CAD File Settings › CRS › CRS:" field
  • CRS definition: WKT (Well Known Text) v2 format is supported. WKT v3 is supported in the new MS Visual Studio 2022 build of Spatix by the newer GDAL/Proj dependency libraries
  • WMS raster tiles would be automatically wrapped (re-projected) into SPX's CAD file CRS on the fly
  • "[ ] Transform to model CRS" option for the Import/Export IxApp tools. If chosen, would transform geometry being imported into CRS of SPX file. If not — source coordinates would be used verbatim to create Spatix elements
  • New feature: New tool Export To File — allows export of SPX vectors into various vector formats via GDAL library
  • Supports Shape files, DXF, ADF, geojson, KML, GPX, MapInfo TAB
  • Supports attached User Attributes to be exported (availability depends on output format)
  • Supports reprojection into target CRS
  • New feature: Place Raster tool is no longer experimental (no need to start Spatix with the special command line option to activate it)
  • New feature: Add keyboard navigation into Spatix startup window: arrows to choose file, ENTER to open it, ESCAPE to close window
  • New feature: Text Tools toolsettings window text styles enabled status now depends on the chosen font. If non-truetype font is chosen, 'bold' and 'italic' options are disabled
  • New feature: More spaccels to alter Text styles options:
  • tvknot=cellbottom|underscore|bottom|center|top|celltop
  • thknot=left|center|right
  • tortho=1|0
  • tbold=1|0
  • titalic=1|0
  • tunderlined=1|0
  • New feature: Scale Element tool does not reset the command after accepting the stretch any longer. Allows to stretch further with the same settings
  • New feature: Scale Element tool, added possibility to enter scales manually in the stretch mode
  • New feature: Construct Big Element tool, Make copy option is made accessible
  • New feature: Choose Element tool now supports grid lock when moving selected elements by drag
  • New feature: Measure Tools and Element Info tool made enabled in Spatix read-only mode (when there is no activation or R/O file is opened)
  • New feature: Find and Replace text tool: If text is replaced to empty string, relevant element is deleted from design file
  • New feature: View Pan by keyboard arrow-keys X,Y-step is now configurable. See "Edit › Preferences › Views"
  • New feature: Documentation for administrators about Spatix network activities was included into distributive — see Spatix_SecurityGuide.pdf
  • New feature: Change Text Attributes tool which allows to alter text styles of a selection of text elements
  • New feature: Show measurements in Element Info command, if any are attached to the element
  • New feature: WMS IxApp improvements
  • WMS layers are now stored in SPX files as new type of element: ELM_HDR_WMSLAYER
  • usual Layers Manager can be used to control their visibility
  • new parameters for WMS layer definition in the WMS.ini: maxcachesize, axisswap, minx, miny, maxx, maxy
  • WMS layers created in previous version of Spatix would not be visible — need to be re-created
  • better icons for WMS IxApp tools
  • Map Freeze command that allows to freeze the current state of the map tiles in the design file
  • New feature: Render textured polygons in case appropriate user-linkages are found on elements (experimental)
  • use --feature-enabletexpgons command line option to activate
  • DGNv8 texturing/materials info for elements is partially recognized
  • more details available by request
  • New feature: GDAL_DATA environment variable (if set) would supersede all other means for GDAL data folder place specifications (like wms.ini or \gdal-data folder nearby Spatix EXE module)
  • New feature: PROJ_LIB environment variable recognized in new 2022 build of Spatix would supersede all other means for PROJ data folder place specifications (like \proj-data folder nearby Spatix EXE module)
  • New feature: Add more info messages into status bar for User Attributes Editor tool
  • Fix: Expiration logic for Spatix and PhotoTools now comes in less harsh wording, no close Spatix on message box close, etc.
  • Fix: Enlarge combobox dropdowns for LineWidth and Layer pickers
  • Fix: Some memory leaks in WMS IxApp
  • Fix: Apply LZMA compression for Spatix distributive package
  • Fix: OS-depended slash separator in paths visible in Spatix startup window, main window title, when copying path to currently opened file into clipboard and other places
  • Fix: IxApp DLLs now would be completely unloaded upon IxApp::Stop() command
  • Fix: Style options in Text Tools toolsettings window could appear or disappear unexpectedly (now always visible)
  • Fix: Layer of Text element's glyphs was not preserved while rendering
  • Fix: Text elements color could randomly change when view is zoomed out to extent when text element degrades to simplified graphical representation
  • Fix: Initial GUI item values in Modify Text tool are now taken from located element
  • Fix: Changing of unicode text via Change Text Attributes tool made text element non-unicode
  • Fix: Some settings in Dimensioning Tools toolsettings window now have shared value for all dimensioning tools, e.g. values in color pickers in Dimensioning Tools are now synchronized
  • Fix: View rotation sub-toolbar may have become inaccessible in case camera view rotation was last active choice and then camera view was cancelled
  • Fix: Possible crash when opening Find and Replace tool
  • Fix: Spatix would build a raster pyramid cache in %temp% directory for raster elements displayed in views if their size is greater than 1 megapixel (1000x1000px)
  • Fix: Remove Spatix startup warnings which popped up in the log window and induced questions from users
  • Fix: Space char of GOST fonts were rendered as visible dot
  • Fix: Measure Coords Delta Command of AdvVecTools IxApp pivot point and cloud point terms were mixed up
  • Fix: Some visual artifacts could appear under main cursor on some devices
  • Fix: Latest active Snap Point is being reset (if there were one) upon start of new Spatix command. Otherwise snap point made in previous command could affect the new one
  • Fix: Tab-order was corrected in some of GUI windows
  • Fix: Performance improvements of new View window open operation
  • Fix: Trim to Element tool behavior when snapping to the element's center was fixed
  • Fix: Snapped-to element would now become the first candidate for the further Modify command
  • Fix: Extend Segment tool when extending element by fixed negative length in some cases had incorrect behavior
  • Fix: Set of drawn element types allowed to be located by Modify Tools were not possible to override from within IxApp -based CAD Command implementations
  • Fix: ViewCommand started via CFace API (not by QAction associated with a toolbar) was not properly cancelled by StateCmdStop()
  • Fix: Inconsistent Spatix behavior in read-only mode: can manage layers, can save views to CAD, but cannot use Element Information and Measure tools
  • Fix: IxApp subtoolbars could appear incorrect when opening them from Application menu (fixed by new way to form toolbar settings name for subtoolbars)
  • Fix: Improved errors reporting on SPX file save operations in case there is no free space available or media is read-only
  • Fix: Improved errors reporting in case OpenGL resources are not enough to create View window (as a result of "window becomes white" feedback report)
  • Fix: Many possible reasons of Spatix crash registered in crashdumps were eliminated
  • Crash in ElmLinearProcessVisiblePieces() in case of rectangular selection over isometric view of pasila.spx
  • Crash on close of ViewParamsPresetsDialog when no document is open (from crash-reports)
  • Crash on exit due to unload of DLLs having font.setFamily(QStringLiteral("Courier New")) in UI
  • Crash on "[v] make copy" click in Mirror tool
  • Crash on reference of unloaded library data in SPATIX_DETECT_MEMORY_LEAKS_ON mode
  • several NPE-s, and more...
  • Fix: Several problems in PhotoTools
  • distortion was applied multiple times to the various scales of the same image
  • there were some memory leaks
  • performance optimizations
  • GDALRasterFile to open GDAL driver in GA_Update (not read-only) mode when TIFF write IO is required
  • Fix: Remove logging "Sending dumps to dump server" into console if none dumps are to be sent
  • Fix: DGNv8 to SPX conversion of elements that lay on unknown layers
  • Fix: spx2dgn VBA module was not saving level table changes into DGN
  • Fix: View windows after tiling are sorted in activation history order
  • Fix: dx= spaccel not to include global origin into typed in values
  • Fix: dx= spaccel to pick up the last Tentative point (if currently active) as a reference
  • Fix: dx= and xy= spaccels to cancel currently active Tentative point (if any), so that simulated datapoint would not go into tentative position
  • Fix: sequential execution of spaccels was broken
  • Fix: crash on Spatix startup in case Spatix Welcome window is set into [v] doNotShowAgain mode

API changes

  • New feature: DrawRasterStereo() CFace function which draws 2 rasters onto a stereo view
  • New feature: New SpatixReadOnlyCommand class. Derived commands stay enabled in Spatix read-only mode (when there is no activation or R/O file is opened). Some fixes into SActionManager and SpatixToolbar for that
  • New feature: ExpStrEncoder — a new tool to encode expiration-related messages into #define- messages
  • New feature: Introduced SnapAwareLocationEnumerator which extends logic of processing of snapped elements. Snapped element (if exists) would be the first returned by the SnapAwareLocationEnumerator
  • Location CFace API and SpatixCommand descenders now use SnapAwareLocationEnumerator
  • Refactor: Hide private static member of CFaceRenderExtension from public CFace API
  • Refactor: Use of raster images in GLTexturizer was optimized for less memory consumption
  • Refactor: All access to SpatixApp::instance()->activeDocument() to be done via SCadDocument::ActiveDocument() and with not-NULL checks of result value
  • Refactor: SpatixSDK switched to use dump_syms_1900.exe to generate *.SYM-files. It works faster
  • Refactor: Many changes to CMake build system for Spatix due to MSVS2022 support and dependency libraries update
  • Fix: Spatix now calls hooks set by DocSetFuncOnEldModified() for every IxApp that set one
  • Fix: Reading R,G,B color components in corect order in ColorReadTableFromFile()
  • Fix: EldMetricsAtPoint() was fixed for arc and ellipse elements when given point coincides with element's origin
  • Fix: EldDistanceAtPoint() calculation of projection point was fixed
  • Fix: Switch back to Win32 API's implementation of OsFileXXX() API (see COMMONS_USE_QT_FILE_API def), since Qt's implementation does not correctly handle boundary cases (e.g. write to full disk, write to read-only disk, etc.)
  • Fix: Disable separate especial handling of not-yet-modified SPX file SaveAs command case (since implementation based Qt's file API does not correctly handle boundary cases)
  • Fix: Several fixes/improvements in Debug Tools
  • GUIItemsInfoDlg to show target widget by flashing red frame in correct X,Y position in case widget is a free-floating window
  • Debug Tools Element Info Command and Main Tools Element Info commands to properly and seamlessly handle highlight of selected elements and toolsettins dialog manipulation
  • Blinking rect which highlights target QWidgets in Debug Tools GUIItemsInfoDlg made to be transparent
  • Fix: SpatixCommand destructor to be called in the context of the relevant IxApp
  • Fix: On Spatix close IxApps will be deleted in reverse order than they were created
  • Fix: Remove Spatix tests dependency on BOOST libraries