spatix v024.002 (2023-02-07, techsupport till 2025-06-30)
New feature: "Clean re-install" option at the Welcome page of Spatix installer will remove and rewrite all previous user-settings by the modern default user settings, if checked
New feature: Spatix shortcuts are now available from terra-application windows as well
New feature: More user-friendly errors reporting on SPX-file save operations (no disk space, write to read-only media, overwrite locked, not enough rights, etc.)
New feature: Raster-refs Manager will show file read errors while locating attached rasters as texts inside raster rectangle (note that some previews may still be present in Spatix cache)
New feature: Lock X, Lock Y and Lock Z now are three separate buttons. Appropriate spaccels are lock axis x, lock axis y and lock axis z
New feature: Grid Lock now acts together with other active locks
New feature: WMS Manager and Raster-ref Manager can now work with geographic CRS. Geographic CRS can be chosen in the "Edit › CAD File Settings › CRS" dialog box.
New feature: Support for wkbPolyhedralSurface, wkbTIN and wkbTriangle layer types in GDAL Import
New feature: Element Information Tool and Choose Elements Tool now allow to iterate through the set of located elements by mouse Reset click
New feature: You can now enable scrollbars in View windows via new "Edit › Preferences › Interface" checkbox
New feature: State of sdubtoolbars shall be saved and restored upon Spatix restart
New feature: DXF Export. The ability to select the INSUNITS value from the command dialog is implemented. Value of primary SPX-file units is used by default.
New feature: DXF Import. Implemented units conversion from DXF to primary SPX-file units.
Refactor: Cursor shape preferences were extracted and moved to a separate "Cursor" section in the "Edit › Preferences" dialog box
Refactor: Huge rasters attach as reference performance significantly improved
Refactor: Disable change active layer by double-click in the Layers Manager layers table (since bad user experience). Use context menu on mouse right-click to set active layer.
Fix: "3D cursor mode" setings is now saved between Spatix sessions
Fix: spatix.com website did not open from the About dialog
Fix: View background color is updated immediately from "Edit › Preferences › Views". Spatix restart no longer required.
Fix: Some Tool Windows had irrelevant captions
Fix: Last used Text height is now preserved in Place Text Tool
Fix: Margins and sizes of Text Tools Toolsettings Windows were harmonized
Fix: Tab-key switch through GUI elements was broken, now is fixed
Fix: Color of the missing fastfont glyphs was always white. Now it is correctly taken from the text element
Fix: Locked SPX-files will now open in Spatix in read-only mode without errors
Fix: Appropriate tab-page of the Raster/WMS/Layers/Presets manager will be activated in the docking area upon the relevant Manager is triggered from toolbar or menue
Fix: Inverted background color is now used as a grid color. Grid dots were now visible on brights view backgrounds earlier.
Fix: Import Export Tools now save/recall the last used path
Fix: Better layer 2D/3D type detection on GDAL Export (Z coordinate was lost on export into SHP-file)
Fix: "Soon expire" message box had wrong-formatted message
Fix: Visualization, highlighting and proper location of imageref elements in reference files
Fix: Several Spatix crash reasons were addressed based on crash-reports analysis
Exception on Spatix start-up in certain cases
Exception on GDAL Export when wrong layerId is given
NPE in OpenGLBackEnd::setRenderingSettings() in case no Z-buffer is enabled
Huge memory leak for recursively constructed Figures that might already have elements appended and stored in the SPX file, while whose geometry is re-expanded from the relevant Figure definition elements
Exception when Spatix is closing
NPE in SColorPicker
NPE in WndMainMenuRemoveItem()
NPE in GdalSpxExporter::assignAttributes()
Fix: Restored the ability to select elements by rectangle in "Individual" mode of Choose Elements Tool
Fix: Highlighted elements at the end of the Element Information Command are properly cleaned
Fix: More predictable visualization of elements intersection point for Snap to Intersection snap mode
Fix: PhotoTools installation path is set to be the latest Spatix installation path (not the first one)
Fix: Photo-pairs are now properly saved in PhotoTools
Fix: Perpendicular to view plane lines were not visible, now are drawn as dots of appropriate linewidth
Fix: Allow opening of DGN v7 with missing EOF marker
Fix: Modify/Insert/Delete Vertex Tools, more precise definition of pick point, limit element types available for operation to only linear elements
Fix: Delete Vertex, ELM_LINE type handling was broken
Fix: Processing of DXF handles on DXF import as uint64 values
Fix: Improve view update performance in case view command clicks that do not really cause sceen modification
Fix: Modify Element tool crashed on location of the ellipse/circle for modification
API changes
New feature: Unicode versions of CFace functions that start commands: StateCmdW(), StateCmdExW(), StateCmdModifyW(), StateCmdViewW()
New feature: Spatix -based IxApps licensing based on API-key logic was implemented
<ixapp_name>; <ixapp_contract> new info was added into telemetry-collected data
IxAppStub example of how to use the new API-key licensing functionality was added into SDK package
CMake -based build instructions were added into SDK package
New feature:SScannableList::GetLastElmdInfo() returns additional info about last scanned element
New feature: Doxygen -built API documentation is now added into released SDK package
Refactor: Rename all remaining "MiniApp" to "IxApp" appearances: in code, in comments, in file names, etc. (with one exception: INI file sections and settings names)
include/SMiniApp.h was renamed into include/IxApp.h in SDK
CFace/miniapp_typ.h was renamed into CFace/ixapp_typ.h in SDK
CFace/miniapp_fdf.h was renamed into CFace/ixapp_fdf.h in SDK
SMiniApp::ActiveMiniapp() was renamed into SIxApp::me()
Refactor: Remove sorid (String or ID) concept from source-codes
Refactor: Remove output string parameter from isSnapModeAvailable() hooks
Refactor: Rearrange SDK header files so that to remove redundant and unnecessary stuff from SDK include folder
Refactor: Remove unused tokenizer.h and userpref_fdf.h from SDK
elem choose rasterref byname <name1>[ <name2>[ ...]] — adds raster reference elements into the selection set by specifying their relevant file names
New feature: Added support for attachment of WMTS layers. Check for the new [WmtsServices] section in the WMS.ini.
New feature: New spaccel view capture 1..8 [<file_name>] which saves selected view window contents as raster file or puts it into clipboard (when no <file_name> was specified)
New feature: WMS.ini new settings imagescale for WmsServices layers only — to increase/decrease requested raster resolution, thus trading detail over network speed (1.0 used by default and stands for 1-pixel in raster maps to 1 pixel on screen. Value 0.5 would map 1 pixel in raster to 4 pixels on screen.)
New feature: More intelligent check for front/back/left/right view orientations, when basemap layers should not be visible
New feature: Element Info Tool dialog box preserves scroll position and allows to collapse upper and lower areas with element information
Fix: Allow to zoom-in by mouse wheel only when cursor flies over the view window
Fix: MSVC-2022 build had instable behavior due to newer Qt got a newer qHash() algorithm
Fix: DXF export of hatch elevations for hatches not-parallel and parallel to XoY plane
Fix: WMS.ini is re-read before displaying the list of WMS providers in GUI (so that to show latest user changes into WMS.ini)
Fix: WMS.ini is no longer read-only on first Spatix install
Fix:Lock to XYZ and Lock to Grid actions workability restored
Fix: Rasters with color table are loaded properly
Fix: Disappearance of text elements when internal font (like fastfont) is changed to be italic or bold for existing text element
Fix: Non-command spaccels are run in appropriate sequence with command- spaccels when started from spaccels script file
Fix: Support spaccel scripts to have empty lines
Fix: Current active command's undo state is preserved in Undo stack on CAD file save event so that to consistently manage Undo history cleanup
Fix: Element Info Tool dialog box now can show field values which have Unicode characters
Fix: Datapoints which are entered by dx= and xy= spaccels are now considered as usual datapoints for next Lock/Snap events that may follow and may use it in operations
Fix: Raster reference cache is properly cleared upon remove of rasterref element or when external raster is missing. Caching properly works for more than one view. Image cache folder is changed to be %TEMP%/Spatix/imgcache
Fix: Interpretation of "Use CRS" checkbox was corrected
Fix: Place Line command restores state of locks after self-restart
Fix: Layers used counting for header elements was wrong
Fix: English messages typo in Raster references manager
Fix: Endless loop in ElmEuaValuesIterate()
Fix: ASSERT in ImgRefTableModel::addReference() when zero references are added
Fix: Majority of most recurrent recent crash-reports were processed (fixed access violations in object_safe_cast(), WMS Manager, GDAL Export, GDAL Import, Layers Manager, NPE in CadViewWindow handling, etc.)
Fix: User manuals PDF auto-generation
API changes
New feature: Prototype for WinProcessExtWindowShortcuts() CFace function
New feature:StateCmdDatapoint() function to simulate datapoint into the view
New feature: Added isUndo flag into Doc_OnEldModifiedFunc() hook function set by DocSetFuncOnEldModified()
New feature: Include Doxygen-generated CHM API-docs into Spatix SDK (experimental)
Fix: Calling convention for Doc_OnEldModifiedFunc() and SnapFilterFunc() were made INTERFACECALL (see DocSetFuncOnEldModified() and SnapSetFilterFunction())
Fix: Mouse wheel events leaking from focused dialog box to view windows
Fix: Widget being modified by the user is excluded from the SYNC_INTERNAL_FROM_EXTERNAL synchronization process
Fix:include\CadMath\half_float.h header was excluded from Spatix SDK
Fix: Check and fix buildability of example apps included into Spatix SDK
spatix v023.002 (2023-03-07, techsupport till 2024-04-01)
New feature: New Raster References functionality (available via WMS IxApp)
Both Geo-referenced rasters attachment and manually placed rasters are supported
Path to raster file is saved either as absolute (in case reference file is on different logical drive), or as relative (in case it is on the same drive with the SPX file)
You may use usual Manipulate Tools to adjust raster placement
MSVC-2022 build of Spatix supports 16-bit color depth for RGB/BW raster references
MSVC-2022 build of Spatix supports ECW file format for raster references
New feature: Spaccel scripts execution (you now may pass the text file with Spaccels list to be executed via Spatix command line and via new spaccel command)
New spaccel file qnew <file_name> [<seed_name>] — creates new SPX file based on default or given seed (q in qnew stands for "Quiet")
New spaccel file exit — exits Spatix (this is in addition to file close spaccel which was available before)
New spaccel file save — saves latest changes into the currently opened SPX file
New spaccel spaccel file execute <file_name> — loads and runs spaccel commands from text file
New Spatix command line option --spaccel <file_name> which loads and executes spaccels from <file_name> upon Spatix startup
Text files with spaccel commands may have comments: Lines started with # as a first character are ignored
Spaccels sequence read from file would be terminated in case CAD file creation/open error
New feature: New Use CRS checkbox (off by default) in the CAD File Settings › CRS settings allows to import vector and raster files as-is (without coordinates transformation)
Note: To attach WMS basemap layer you now MUST first go and enable this flag
New feature: ToolSettings window for Place Line, Place Polyline and Place Polygon tools allowing to specify line segment length and azimuth
New feature: WMS dialogs and some other windows were reimplemented as dockable panels so that save screen space
New feature: Ctrl+F12 shortcut assigned to Layers Manager, Ctrl+F11 — for Spaccels windows
New feature:GDAL_DATA and PROJ_LIB environment variables no longer used by Spatix to locate GDAL and PROJ data folders.
This is not to intersect with other software (like PostGIS) that may be installed on the same machine and have such folders on their own.
If you need to override data folders location for Spatix, set up SPATIX_GDAL_DATA and SPATIX_PROJ_LIB environment variables instead.
New feature: Element Info command now displays vertices count for big elements
New feature: Spaccels for commands that missed any have been defined
New feature: New Get Text Attributes tool to pick up actual text attributes from existing text elements
New feature: Spatix and other tools Manuals generation was put onto new technological rails (PDF generation from HTML/XML sources)
Refactor: Change Text Attributes tool now does not include possibility to change common active element attributes like layer, color, line weight and style
Refactor: Menu items and tool tips for CAD and View command names were tuned to be in the same general style for letters case (according to English captions rules)
Fix: Disable bold and italic checkboxes for fonts that do not support such styles
Fix: Dead loop while adding WMS layer into view having too far zoom out
Fix: Crash on GDAL import of files having less than 20 contours
Fix: Several icons were tuned to be properly rendered in Windows 10+
Fix: View windows are now restored properly upon switching from Tie-points mode
Fix: Bug while restoring CRS data from SPX file settings
Fix: Delete Linear Part Tool to work predictably in views having perspective projection
Fix: Rasters are rendered first in the OpenGL pipeline, so that vectors stay on top
Fix: Implement snap for embedded Raster elements
Fix: NPE on Spatix start up
Fix: Pushed state of Lock command buttons are now updated if lock was set via spaccels
Fix: Fixed save/restore mechanism of commands' ToolSettings window size
Fix: Memory corruption on DXF import of hatches that have more than 5000 points for contours
Fix: Memory leak in Phototools
Fix: Issue of skipping the first element in case of KML format import via GDAL
Fix: Added GDAL to the spx2dwg distribution package
Fix: Fixed undo behavior for view commands in stereo mode
Fix: Uninitialized memory access in GridDisplayPrepare()
Fix: Disable dockability of Style Presets and some other big dialog panels (like ones from WMS IxApp) to the upper and lower docking panes, limit them to only left and right docking panes for user convenience
API changes
New feature:VwSetTitle() if called with non-NULL txt parameter would prevent Spatix to update view title on its own (e.g. upon view orientation is changed). Pass txt=NULL to revert control of the view title to Spatix.
New feature: New element type ELM_HDR_IMGREF (raster reference) as API (see EldImgrefXXX() API calls in /include/ElmEld/eld.h).
New feature: New DocGetModelCRS(), DocSetModelCRSEx() and DocGetModelCRSEx() API calls support explicit manipulation of the "Use CRS" flag
New feature: Split SCadView::StageScene and SCadView::StageRefScene rendering pipeline stages into 2: SCadView::StageSceneFirst and SCadView::StageRefSceneFirst, followed by original ones (used to render rasters first)
New feature:VwRndrParamsSet() to override view orientation parameters only for current view update operation
Fix:SSettings::value() to return default value if not found
spatix v022.008 (2022-08-30, techsupport till 2023-10-01)
New feature: WMS layer operations support for undo/redo of transform and borders setup
New feature: Read in level names from DGNv7 files
New feature: Layers Dialog in Layers IxApp was improved to support keyboard shortcuts for Layers renaming (F2), removal (Del) and insertion (Numpad +)
New feature: Preserve export parameters of GDAL Export dialog box between calls witin the same Spatix session
New feature: Implemented progress visualization for GDAL import/export processes
Fix: GDAL export was fixed to support for formats (GPX, GEOJSON) which require strict order of layers being exported
Fix: Calculation of used layers while DGNv7 CAD file open
Fix: GDAL Export now treats Symbols at layer=0 as groups — exports their constituents
Fix: DGNv7 ScanRun() for better cell components by level visibility control (as it is the case for SPX files)
Fix: Stack overflow while GDAL export and some NPE-s
Fix: Tune WMS IxApp request headers to fake FireFox (allows to access openstreetmap tiles)
API changes
New feature: Dump Used Memory Blocks (into Visual Studio Output window) tool in Debug tools IxApp — works in debug build of Spatix only (DebugTools.ix available in Spatix SDK)
New feature: New CFace function DocSetModelCRS() was implemented
New feature: lz4 and zlib libraries used by Spatix were upgraded to the latest versions
Refactor:Scan() function renamed to ScanRun() for better grep-ability through source-codes
Fix: DGNv7 ScanRun() recover support for SP_RET_ELD mode of scan
Fix: Removed all references to AppCallHook() which is no longer relevant — EXECUTE_IN_IXAPP() is relevant
Fix: Removed hook.h which is no longer relevant
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 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:
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 MSVC-2022 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
spatix v022.001 (2022-02-04, expires 2023-02-28)
New feature: 3 minutes after start Spatix would check if new version is available, and if it is — inform user with the non-modal dialog box about that
New feature: New WMS IxApp displays cartographic 2D raster tiles (google maps, yandex maps, etc.) in views
WMS v1.3.0 and TMS layers are supported
Currently only ESPG:3857 coordinate system is supported
Map layers are configured in config\wms.ini -file
WMS.ix is included into installation package and into autoload IxApps
Setup orientation of map Tool allows to place map layer within Spatix world coordinates system
Setup WMS-layers of view Tool allows to add WMS layers into the views
Map orientation and enabled layers settings are saved in the SPX file
New feature: User Attributes toolset: Pick, Assign, Clear user attributes tools:
Allow to edit EUA- user attributes attached to elements (e.g. those that shall be imported from Shape files)
Support for Presets of attributes (tuples)
Support elements location by selection and by clipper
New feature: Shortcuts and spaccels can be saved and loaded as *.ini files from "Edit › Shortcuts" dialog box
New feature: Stretch mode for Scale Element tool
New feature: Choose text elements by substring in Choose Elements tool (supports regular expressions as well)
New feature: Find and Replace text tool (can work globally, over selection or clipper)
New feature: More fine control over the view zoom factor by the mouse wheel:
Added "Zoom factor on mouse wheel" preference into "Edit › Preferences › Views"
Alt+Wheel now means zooming in/out view with a half factor
Added options for smaller zoom factors into View Zoom tool settings
New feature: Measure Element tool would now calculate length of big lines and area of big polygons (arc segments not completely supported yet)
New feature: Command line parameters to enable logging of internal Spatix events to file (useful for remote problems diagnostics)
New feature: Spatix Expired dialog box is no longer modal (but still will close Spatix on OK). You may move it outside the screen and continue working.
Fix: Improved status bar info messages in Scale Element tool
Fix: Crash in PhotoTools when Spatix is closed
Fix: Construct Big Element and Break Big Element tools improvements:
Construct Big Element bug when symbol is built instead of chosen element type in the combobox when using selection
Always restart Construct / Break Big Element command on Reset
Disabled possibility to use ELM_HDR_BIG_LINE element as a part of another one
Allowed to choose unclosed elements when trying to construct polyhole by locating elements
Eliminate memory leaks in Construct Big Element tool
Disable possibility to construct polyhole from a single element (when locating by clicks or using selection)
Restrict construction of polyholes without holes when using selection (this also fixes 'auto mode' behavior)
Possible crash when trying to click on one element in Construct Big element tool
Typos in Construct big element tool info message
Fix: Text elements display and highlight functionality was broken (wrong color and line style were chosen)
Fix: Place Raster tool to draw rasters in dynamics when placing several rasters at one time
Fix: Annoying lag when trying to dock toolbar to dock area in some cases
Fix: Correct tabstep order in some GUI dialogs
Fix: crash in Dimensioning Angle by Elements tool (new way to compute lines intersection)
Fix: Scale in Export DXF tool now is pre-multiplied by resolution factor
API changes
Refactor: Improve performance of raster elements visualization even more (cached degradation pyramid implemented)
Refactor: Improve diagnostics and recoverability of SPX-files that were not completely saved due to too long compression process (user did not wait and killed Spatix)
New feature:PtIsOnLine() in CadMath to check if point lies on line defined by point and vector
New feature:PtIsOnLineEx() in CadMath to check if point lies on line defined by 2 points
New feature:Isect3dLineByLine() in CadMath to search intersection of two 3D lines
spatix v021.010 (2021-10-15, expires 2022-12-31)
New feature: New independent installer for PhotoTools. Installer will locate currently installed Spatix path and install PhotoTools there
New feature: Improved toolbars
Preserving position of IxApp toolbars inside toolbar area
Now toolbar will be shown in floating state on the first IxApp launch, so that user may move it wherever he or she wants
Preserving position of Spatix toolbars (Symbology, Snaps, Locks, File)
New feature: Place Raster improvements
Improved Place Raster logic: now user should accept operation before placing raster
Support for World files with raster coordinates (stretching and translation is supported, rotation is not)
Support for Unicode symbols in file paths/names when loading rasters
New feature: New Delete Linear Part tool from ManipulateTools
New feature: GUI Items Info tool for DebugTools (included into SDK)
Fix: Improved PhotoTools stability and localization:
Fixed several issues which could cause crashes (start/stop, opening/closing view)
Now both . and , are supported for entering floating point numbers
Fix: Improved stability of Place Raster tool
Fixed several memory leaks
Fixed crash when Pan (for example using middle mouse button) is used during placing image for the second time or further
Fix: Fixed memory leaks when interrupting commands in most of ManipulateTools
Fix: Several fixes in UI behavior
Adjusting floating widgets positions on available screen area change (toolbars and dock widgets should never disappear outside of screen area)
Move tools sub-toolbars into the visible area if they can't be accessed by user (e.g. because screen[s] configuration has changed)
Perspective View dynamics cube is now drawn in visible view center
Reverted meaning of arrowkeys when used to pan view window. Arrow keys shall now move the view over design, not design inside the view
While some Qt text-input-widget was focused and arrow keys were pressed the active view content was also moved. Now view contents will stay still
Fix: Addressed critical errors from log window which triggered it to appear on screen and confused users
Removed empty errors when working with PhotoTools
Removed error about _datapointCallback
Removed errors when IxApp is restarted
Fix: "Chained" spaccels with xy= or dx= expressions after command start (like place block; xy=0:0; dx=100:100) will now work again as expected with correct coordinates
API changes
New feature: Introduce SpatixColor into Elm structure — by now as union-s over existing fields (not to break the backwards compatibility)
New feature: Implemented support of Unicode strings with surrogate pairs (Emoji etc). (FNT_USE_UNISCRIBE must be defined)
New feature: Improved support for rasters in rendering API
Visualization implemented by usage of GLTexturizer
Implemented a cache of decompressed images and prepared textures
Implemented clipping by visible area of image (IMAGES_PAINTER_PREPROCESSING needs to be defined to activate it)
Fix: KLUDGE in sx_cad_routines.cpp
Fix: Improved EldDistanceAtPoint() to process elements which need to be stroked first
Fix: Processing CMNDLG_MULTISELECT flag in DlgQueryFiles() to allow selection of multiple files
Fix: Processing DLG_FLOATONLY flag in DlgOpenS() to allow placing of floating windows
spatix v021.008 (2021-08-18, expires 2022-12-31)
New feature: Restored support for TrueType fonts to be used for ELM_TEXT elements in Spatix
Works fine only if the same-named TT font is installed on all computers where same SPX-file is opened, otherwise degrades to fastfont
FontID to font name and font-style map yet to be stored within SPX-file settings to improve SPX-files portability
New feature: Filled elements in onDynamics() draw now look semitransparent (allowing user to control the vertexes placement over background in Place tools and Manipulate tools)
New feature: New spaccels to set up active element styles: lr=, co=, ls=, wt=, fill=, fillco=, th=, font= (se Spatix manual for more details)
New feature: Preserving toolbars state on Spatix restart (partially) even if appropriate IxApps are not loaded on startup or are loaded in different order
If toolbar is floating then its global position on the screen will be restored
If floating toolbar is not visible with current display set (e.g. when one of monitors was disconnected between Spatix sessions) then toolbar will be moved to the display on which main window is currently located
If toolbar is in a group (pinned to another toolbar to form an island), it will be restored in that group
If toolbar is docked to one of the toolbars docking area then it will be restored at this toolbar docking area (left/top/right/down)
Upon show, floating toolbar would readjust themselves to fit the display area that is currently visible
Position of toolbar inside particular toolbar docking area is still unpredictable (both for "docking line" and "ordering within a docking line")
New feature: New IsHidden=true setting per IxApps in the [MiniAppsSettings] INI-file section would hide IxApp from menu. In case all IxApps of one group are hidden — no group menu is shown
IsHidden=true was embedded by default for build-in IxApps for new clean installations of Spatix
New feature: New Spatix command line options --log-fatal, --log-error, --log-warning, --log-info, --log-state, --log-debug, --log-more, --log-evenmore, --log-signal to override the current debug level which was set up in DebugTools
New feature: DXF import using DXF import/export tool would not reuse existing layers, unless the layer name matches. Unique layers imported from DXF would go under the common header layer named as this DXF file.
New feature: Now DXF_ReadHatch() would read Hatches with polyline boundaries (there was a support request for that)
New feature: Automatically open log window on any fatal error message instead of modal message box (useful for tracking failed spaccels)
Fix: less strict rotation matrices comparison — to add Std rotation names more likely into view window captions
Fix: Std view rotation names now have priority over saved view presets when choosing view caption text
Fix: hide Main Tools Place Raster tool from GUI in case no --feature-showdebugelems command line option was specified
Fix: Measure Element tool to attribute 0-length lines as points
Fix:ColorTable export into ASCII 0-255 *.pal files format is made compatible with JASC-PAL color table files format
Fix: Menu items for IxApps that are unloaded from sub-menu group no longer disappear (allowing to load them back again later)
Fix: Memory leak in EtiText_TextGetGeometry(), DXF_ImportHatch(), publishIndentifier(), in Dimensioning tools while calling FntGetRegisteredFontNames() and a huge one in fnt_glyph_geom.cpp
Fix: Proper clipping of ELM_BSPLINE2 by view window boundaries
Fix: Incorrect extend segment towards snap point by Extend Segment tool
Fix: Rare case when Spatix toolbar may stay condensed (too small) when dragged off the docking area into the floating state. There was no way to enlarge it.
Fix: Rare case when floating Spatix toolbar would not glue into island since overlaps to toolbars being docked nearby
Fix: Trimming arc to arc in some cases could fail (reduced accuracy when comparing coefficients of the "arcs intersection equation" to zero)
Fix: Curve being a part of big line can't be chosen in Extend Segment tool (since ELM_CURVE has no means to be extended yet)
Fix: Now polygon can be trimmed only if intersection point is lying on it's segment
Fix: Order of saving/loading view state settings from SPX-files was broken. Now view windows geometry and indexes should be correctly saved/restored (there was a support request for that)
Fix: Added support for ELM_ARC when extending big line element ends using Extend Segment tool
Fix: Several fixes that probably address problems from crash-reports:
exception in LyrCreate()
exception in DXF_WritePolyline() ⇨ SCadDocument::ActiveDocument()
exception in DXF_Import() ⇨ SCadDocument::setColorTable() ⇨ SPubIdentifier::data()
Fix: All toolbars now have proper names (so that could be referred to)
Fix: Intermediate rendering in stereo mode caused crashes of TS software in stereo windows
Fix: Element Information tool — transient highlight of element was not cleared off upon switch to another command
Fix:SpatixStartupWidget dialog box that asks which file to re-open on startup no longer blinks
Fix: Invalid warning message about CadCommand not started appeared in the log while starting up CadCommands from C-based IxApps
Refactor: More accurate definition of hit point in Trim to Element tool
Refactor: Simplify the generalized geometry needed for simplified rendering of zoomed-out-too-far text elements
Refactor: Speed up FntGetGeometryU8() and FntOutlineToEld()
API changes
Fix: Move DUMP_MEMORY_LEAKS() to the latest step of atexit() processing, so that to properly catch destructions of static variables in the debug Spatix build
Refactor: Font typeface names are now handled as UTF8 string throughout the API
spatix v021.007 (2021-07-23, expires 2022-12-31)
New feature: SPX2DGN separate tool (not bundled into Spatix distributive) — a MS VBA project which imports SPX files into currently open Microstation DGN
New feature: Element's Information Tool would now show element attributes attached to element by ImportExportTools IxApp while GDAL-based import
New feature: Name of the standard view rotation or view preset name now is visible in the view window caption
New feature: New Main Tools › Place Raster tool — to place ELM_HDR_RASTER from file or from clipboard. (Use command line --feature-showdebugelems to activate experimental support for ELM_HDR_RASTER)
New feature: Extend Segment tool, Trim to Element / Intersection tool now supports ELM_ARC elements
New feature: PhotoTools now would read/write GeoTIFF format (including resolution pyramid) via GDAL integration
PhotoTools was refactored to consume less memory while dealing with huge photos
New feature: Ability to edit entries and import/export ColorTable. See dialog "Edit › CAD file settings... › Color Table". Several palette file formats are supported:
binary-RGB, binary-BGR
ASCII 0-255 triplets, ASCII 0.0-1.0 triplets
XML AutoCAD color-book (online editor: https://download.autodesk.com/global/acb/index.html)
New feature: GUI to copy parameters from existing views and/or other presets while defining View Parameters Presets. See dialog "Edit › View Params Presets..."
New feature: GUI to add elements into selection by thir IDs. See "Choose Elements Tool › Element ID" tab.
New feature: Restored support for ELM_BSPLINE2 element (from SpatixC era), snap modes support for it, and tools to create/manipulate it — needed to revert TrueType fonts support
New feature: Improve the Spatix settings userconf.ini files organization
support to extend settings by *.ini files taken from read-write "include"-folders (useful for adding more tools into auto-run while tool setup process)
support to extend settings by *.ini files taken from read-only "overlay"-folders (useful for company admins to fix/override some of the settings or groups of settings)
also sections of userconf.ini now can be extracted into separate *.ini files (e.g. useful for sharing shortcuts definitions among users)
possibility to say the place where user settings should be taken from in the Spatix command line option: --config-dir c:\path_to_config_folder
the userconf.ini in the current Spatix installation package was not yet refactored to use this improvement
Spatix installation package would create a _backup_DATE folder with the previous userconf.ini and other *.ini files
New feature: Add grouping of IxApps (second level into menu of IxApps) that were added via separate *.ini files during installation. Add GroupName= key into [MiniAppsSettings] section in custom ini-file to give a group a name.
Fix: discover and fix many memory leaks with the new _DEBUG-build approach (especially Eld container -related)
Fix: F1-F12 shortcut keys workability for Terra apps
Fix:abs() to fabs() usage in Extend Segment Tool
Fix:ElmMeasure() fix for arc length and ellipse circumference calculation
Fix: Some Qt GUI refresh performance improvements
Fix: NPE in font_lib in case DGN7IO CadFile provider DLL was not loaded
Fix: Invalid floating point value separators (commas) in PhotoTools configuration files for some locales (i.e. Finnish)
Fix: ImportExportTools GDAL-based import to recognize national letters in file names and feature attributes/values
Fix: Activate Spatix main window (if it is in background) by first click inside any View window
Fix: Fix TIFF format pixels format interpretation inside Qt library qtiff.dll
Fix: Review all Spatix Toolbars and sub-toolbars to have non-empty caption in the floating state
Fix: Break Element tool, Extend Segment tool and Dimensioning Tools would now allow to locate only those element types that support relevant operation
Fix: No window flickering in ElementInfoDlg
Fix: Import/Export Tools — Temporarily set current directory to GDAL source file's directory to support relative paths while import of VRT file format
Fix: 0-length line is now attributed as "Point" in the Measure Element tool
Fix: Changed Trim to Element / Intersection Tools logic: now they find intersection with respect to current view projection/orientation parameters
Fix: Dimensioning Segment Tool for points and 0-length polylines — tool now ignores such elements
Fix: Adjust floating SpatixToolbar to be located in the visible screen area on show (no longer toobars stay locked to no longer connected monitor)
Fix: Save absolute file paths to recently opened CadFiles into the settings — recent files are no longer lost if you run Spatix from different locations
Fix: Trim to Element tool now properly cleans up Transient geometry
Refactor: Changed angle locating sequence in Measure Angle and Dimensioning Angle tools (first click is first end-point › then, center point › last — second end-point).
Refactor: Break Element Tool command sequence made to be more clear/responsive to users: added onAccept() hook, added onDynamics(), added info messages in status bar, new way to choose break point on the element: via perpendicular from current dynamics point with respect to view orientation
User manual was not yet updated to reflect above changes
API changes
New feature: implemented some of the MISSINGFEATURE-s in sx_xxx layer: ElmIsViewIndependent()/ElmSetViewIndependent()/VwSetGrid()/CadDocumentSave()
New feature: C++ Lambda-functions for running code snippets onIdle(), onDelete(), etc.
onIdle() — lambda will be called only once upon main Spatix messages loop has nothing to do (useful to thin out calls about GUI updates)
onDelete() — lambda will be called upon destruction of the relevant object (useful to define clean-up code nearby to set-up code)
New feature: First version of CFace API to work with system clipboard (for now only texts and images are supported). See include/CFace/clipboard_fdf.h
New feature: PhotoTools, SpatixRendering — a big refactoring of the texturization engine to maintain loading of textures which size is greater than GPU supports (splitting them to pieces)
New feature: Spatix Toolbars C++ API improvements when using custom layout: insert actions, widgets, separators
Fix: Avoid recursive call to dynamics during public identifiers synchronization if dynamics call is currently already being processed (i.e. when pub. idents are synchronized inside dynamics hook)
Fix: File extensions filter in DlgQueryFiles().
Refactor: Hide SiXXX() SScannable interface-callers into CadIO module (stop using them throughout the project), ScannableXXX() CadIO module public funcs are to be used instead
Refactor: Remove redundancy in ElmRead()/EldRead()/EldReadEx() function names, read() methods of SScannable and ScannableReadElm()/ScannableReadEld() proxy funcs of CadIO
Refactor: Remove redundancy in many versions of append()/write()/remove() members of SCadFile in favor to ElmWrite()/EldWrite()/ElmDelete() semantics
spatix v021.005 (2021-05-06, expires 2022-05-31)
New feature: GDAL import now supports conversion of attribute values into text element
New feature: GDAL import now allows to specify the character encoding being used in vector files which are imported (if one was not recognized)
New feature: Added info messages for all dimensioning tools.
New feature: Added precision setting in Dimensioning Tools.
New feature: Spaccels view open N / view close N / view toggle N to control view windows
New feature: spx2dwg: saving / restoring the structure and attributes (EUA) of elements while export / import SPX file format
New feature: Added settings for choosing 3D cursor mode in views into the preferences dialog box
New feature: Callout is now drawn when placing area label out of polygon in Dimensioning Area.
Fix: Removed invalid error messages after executing spaccels for TS apps
Fix: Improved dimensioning tools command sequences to avoid double-clicking in some cases.
Fix: Do not draw invisible elements whose linewidth=0 and isFilled=false
Fix: Check and fix setting up final element styles while rendering elements
Fix: Change Attributes now would update By-Layer flags in the element
Fix: Tune tab-steps order and layout for toolsettings windows of some tools in the ManipulateTools IxApp
Fix:FntMeasureStringFast() now will take into account all X,Y and Z rotations for text element
Fix: Export DXF tool results now can be opened by Microstation and AutoCAD (refactored handles generation)
Fix: Initialize uninitialized ELM_TEXT members in ElmTextCreate() functions
Fix: Dump unicode text properly in DebugTools Element Info tool
Fix: First figure is now choosable in Place Figure Instance tool
Fix:rgb() inline func for correct b,g,r order of fields in RGBColor struct
Fix: NPE in isSnapModeAvailable() — there were crashreports about it
Fix: NPE in ElmFindSymbol() and ElmFindFigureDef() — there were crashreports about it
Fix: Some of memory leaks were eliminated
API changes
New feature:AppExecuteShortcut() function to pass WM_KEYDOWN event to underlying Spatix window system giving it a chance to execute shortcut if such shortcut for a key (including modifiers) is registered in Spatix
New feature: Design for a new SpatixColor descriptor concept (to be used to implement RGB colors in SPX-files), tune HSVColor structure
Refactor: Some optimizations in the ColorRgbToHsv() and ColorByRgb()
Refactor: Get rid of kludge RGBToUInt() and RGBFromUInt() macros
Refactor: Change linewt_t from 16-bit to 32-bit uint
Fix:EldGetSymbol() for proper applying of transformation (yet needs to be tested)
spatix v021.004 (2021-04-13, expires 2022-04-30)
New feature: FigureTools IxApp workability restored (ported from SpatixC), FigureTools added into the distro
tool to create figure definitions
tool to place figures based on figure definition
"figure-libraries" are not yet supported, all figure definitions are stored in the same (currently opened) SPX file
no tools to "re-define" figure definition
New feature: PhotoTools — restored workability of this tool (not included into the distro)
New feature: PhotoTools — added expiration
New feature: spx2dwg — AutoCAD app now is able to export currently open DWG into SPX file format (not included into the distro)
New feature: Dimension area tool
New feature: Dimension Angle by Elements tool.
New feature: improve responsiveness of mouse operations in View over RDP
new preferences parameter (category: "interface") — if mouse coordinates to be updated on every mouse move in the status bar (if enabled, this does not cause refresh of the whole SpatixMainWindow from the backing store on every mouse move)
disable costly formatting in SpatixCommand::updateAppStatusMessage() in case cursor coordinates are not to be shown
disable backing store and background paining for SCadView widget and its parent (a scroll area whose client area is completely occluded by SCadView OpenGL window)
improve userconf.ini settings for using OS cursor in RDP mono mode. Set SCadView_use3dCursors=always/never/auto in userconf.ini — to force WinAPI or 3D cursor.
Fixed: GdalConverter — missed break in switch()
Fixed: incorrect line style applying in Dimensioning Tools.
Fixed: dimension styles applying in Dimensioning Circle (for callout).
Fixed: copy unrecognized types of user data linkages while converting from DGNv8
Fixed: extending ELM_LINE by fixed value.
Fixed: Main units instead of world units in Extend Segment tool.
Fixed: memory management by CommonElmSmartPainterBuffer class
Fixed: Some DXF import/export improvements:
remove dangling layer_name pointer
improve write-out 64 bit doubles in ASCII mode (remove trailing 0-z after decimal dot in double values)
TrimString() improvements
Avoid redundant call to refillActiveLayers()
API changes
New feature: Added polygon area calculation to ElmMeasure (now polygon area can be calculated via Measure Element).
New feature: new check in Elm/EldSetAttr() for data fit into ElmUserAttr structure (see ELM_UATTR_DATA_MAX_SIZE)
Refactor: improve EldGetPlane() and ElmIsFlatPlane() performance for orto-parallel cases
Refactor: move standard rotations to CadMath from SpatixCore\CadView
Refactor: replace SLayerSet definition from Maybe<QSet<lyrid_t>> towards BitMask — less conversions during rendering operations
Refactor:registerPreference() parameters reorder for convenience
spatix v021.003 (2021-03-07, expires 2022-03-31)
New feature: DimensioningTools IxApp which includes tools:
Dimensioning Linear
Dimensioning Segment
Dimensioning Diameter
Dimensioning Radius
Dimensioning Angle
all Dimensioning tools currently create Symbol with child geometry. Support for special-purpose ELM_HDR_DIMENSION element type is not yet implemented
there are no tools to modify created dimensioning yet
New feature: New "Place callout" tool in TextTools IxApp
New feature: Import into Spatix variety of vector file formats using GDAL library. Supported and tested formats:
ESRI shape files,
Google KML (but not KMZ yet),
GEOJson,
GPX (GPS eXchange),
Mapinfo TAB -files,
SXF, and some others. Actually, more formats are supported, but not properly tested yet
projections management and coordinate transformations are not supported yet. Coordinates are imported as-is (with only uniform scale factor possible)
exporting of the same data is not implemented (yet)
GDAL library and its dependencies are included into distributive
ESRI Shape files may contain 4-th D "Measure" value. It is imported as a user-linkage attribute embedded into Elm structure
Many vector file formats come with relational attributes database. Relational attributes are imported as user-linkage attributes embedded into top-most (header) Elm structure. New special-purpose API was designed for working with relational attributes attached to Elm-s
GDAL provides element styles abstraction, which was not fully mapped yet at Spatix element styles. Original GDAL-provided styles are imported as user-linkage attributes embedded into top-most (header) Elm structure (not to lose this data) (Experimental, this may change in future)
GDAL also provides support for variety of raster files import. This is not implemented.
Updated About dialog about GDAL dependency, Spatix legal notes (incl. installer)
New feature: pre-relase (experimental) features included into the release build of Spatix could be activated via command-line. Currently the following features could be activated:
--feature-showdebugelems — debug elements in SPX file are rendered the in views. So far pre-release debug elements are: ELM_HDR_RASTER, ELM_HDR_DIMENSION. Internal binary structure of these elements may change in future w/o backwards compatibility
--feature-enablereffiles — show "File › Ref files › attach/detach" menu, allowing to attach vector elements files to the main opened SPX file
New feature: (experimental) Add support for ELM_HDR_RASTER in SPX files (use --feature-showdebugelems command line option to activate this)
No GUI tools to create those in Spatix yet, but such rasters are properly imported from DGNv8 (where they can be created by Ctrl+V of raster data from clipboard into Microstation)
New feature: (experimental) Add support for vector reference files to be attached to the master file
Not yet tested well, use --feature-enablereffiles command line option to activate this
No GUI tools to properly control attachments yet
New feature: coordinate system setup shall be properly converted while reading DGNv8 files (rev.-eng. Dgn8ModelHeader stream)
New feature: SPX2DWG standalone freeware tool which could be used to import SPX files from within the AutoCAD into the current DWG document (can be downloaded from https://spatix.com/downloads)
New feature: Apply BIG-line and BIG-polygon styles to all their components in the "Construct Big" tool of ManipulateTools IxApp.
New feature: Every DLL and EXE module now are provided with the proper VersionInfo@Win32 resource
Fixed: visual align of "View Attributes › Grid Settings" Dialog Box, provide Main Units labels
Fixed: grid to be drawn to real MainUints scale. So, grid now allows creation of precise to-scale geometry
Fixed: MDI ChildView windows to move as "rubber-bands" on mouse-drag (in this case MDI child window does not go into "crazy dance" while dragging)
Fixed: MainToolsCpp "Element Info" tool not to skip every odd header property
Fixed: "Preferences › Application › Interfaces › Recently opened files count" settings to support up to 100 previously opened CAD files
Fixed: "Extend Segment" tool of ManipulateTools IxApp to create ELM_LINE instead of ELM_PLINE when extending a simple line.
Fixed: precision while coordinates readout from UORs (old structures are yet in place — not to break compatibility with current Terra-apps binaries)
Fixed: "Measure Distance" tool to work more predictable
Fixed: problem with opening sub-toolboxes from the "Applications" main menu
Fixed: "Edit › CAD File Settings" dialog for correct and proper Coordinates setup
Fixed: the appcrash in the GLPainter::drawImage() from the crashdump reports. This is another attempt. This one has a good chance to be the last.
Fixed: the appcrash in the CoordinateAdjuster::isSupported() from the crashdump reports.
Fixed: the appcrash in the EldIsSelectedByRect() for 0-component big elements.
Fixed: the appcrash in the EldReplace() to zero **pelmd pointer
Fixed: "symbology" to be renamed as "element styles" where it was still visible in Spatix GUI (not yet fixed in API declatarions)
Fixed: assertion in Layer Manager for wasSelected
Fixed: blank button icon in "Element Style Presets" tool.
Fixed: initial "Create Preset" dialog box position for 2-monitor configuration.
Fixed: the appcrash since map->layerSymbology(id) could return NULLs — since crashdumps contain related NPE-s
Fixed: the appcrash since NPE in ~CFaceRenderExtension() from crashdumps
Fixed: the appcrash since NPE in Eti_FigureGetGeometry() from crashdumps
Fixed: the propable appcrash since NPE in EldCalcListMbrSetHdr() from crashdumps
Fixed:EldResize() and EldShrinkMem() to properly update myHeader links for Eld children
Fixed:EldOffset() incorrect behaviour for 0-component big elements
Fixed:EldDuplicate() incorrect behaviour for 0-component big elements
Fixed:AppFree() to be a linkable "C" function instead of a macro which expands to free()
Fixed: memory buffer overruns and uninitialized memory access in TextTools
Fixed: Spatix Telemetry client-side algorithms: PID added into local filenames, local locking while Telemetry send-out, datetime formatting fixes for strange time-zones
Fixed: memory leaks in ElementUserInfo tool and not freed Scannable handles in STransientController and DefaultSelectionSet
Updated icons for DXF IxApp
Updated icon for Measure Angle tool
Updated user manual is included into distributive
API changes
New feature: add possibility to see structure member offset and size in DebugTools IxApp's (which is included into SDK) Element Info command
New feature: improve precision of CadFileSettings::worldsPerSubUnit and subsPerMainUnit (they were uint32, now became double-s)
API change:ElmSetAttrs() shall now overwrite attributes rather than append
New API:EldEuaValueXXX() API for working with relational attributes attached to elements (used to import Shape-files and other vector geometry attributes via GDAL library)
New API: provide CadFileGetXXX()@CFace and CadFileSetXXX()@CFace getters and setters for CadFileSettings values — to isolate access to CadFileSettings structure which quite evolves from time to time:
Refactor: restored DbgMemMemoryXXX() API for memory leakage detections (works only in DEBUG build of Spatix)
Refactor: many of CFace functions that take const CadFile *file parameter on input now support to take in NULL as a marker of master the file of the active document. Also, they will now return ERR_BADFILENUMBER is file is invalid.
Fixed: SDK distributive to build example IxApps up to SYM-files generation
Fixed:AppFree() to be a linkable "C" function instead of a macro which expands to free(). Link to Spatix.CommonsCpp.lib to get this.
Fixed:PgonIsConvex() — added test for polygon simplicity + max number of vertices for the convex test
Fixed: incorrect calculation in DgnSetCoordSettings() and DgnGetUorSystem() (in the sx_cad_routines.cpp) — subunitsPerMasterUnit should not be modified
Fixed: memory leaks collection API to work as before (in Debug build of Spatix only)
Fixed:GLPgonTesselator() to be lazy-initialized (to save more memory)
Fixed: the problem in the ElmGetAttrs()
Fixed: the possible extra padding byte is now will be zeroe-d in EldSetAttr()
spatix v020.012 (2020-12-21, expires 2022-01-31)
Update Spatix expiry date to 2022-01-31 (expired Spatix periodically shows annoying dialog box, but does not prevent user from working)
Added info on Spatix expiration into legal notes shown during installation time
New feature: Menu item "Edit › Copy edited file name" which puts the current CAD file path and name into clipboard
New feature: Option for "Construct big element" to choose element styles that should be applied to big element being constructed (active style/style of the first clicked/last clicked element)
New feature: Option to choose angle measurement units in "Measure Angle" tool
New feature: "Construct Big Element › Polyhole (by selection)" tool was restored from SpatixC
Improved: Symbols and Figires — their components visibility now is controlled by their layer global visibility flag
Improved: Delete Vertex tool to allow the choice of element to be modified if there are many under the mouse click
Improved: "Element Information" tool to recognize Polyholes from Symbols
Improved: Layer Manager to not allow users to select or deselect globally invisible layers when toggling layer visibility for view
Improved: "Extend Segment" tool to support Big polylines
Improved: "Element Info" Command from DebugTools to work over selection of elements
Fixed: broken rendering of "Layer Overrides" for element attributes per view
Fixed: cursor to be a Locate cursor for "Measure Element" and "Measure Angle between elements" tools
Fixed: displaying a first angle side in "Measure Angle" to see the whole angle dynamically
Fixed: "Break Big Element" tool to work by element's location, not only by selection
Fixed: too rough stroking tolerance for ellipse being holes of the polyholes
Fixed: duplicated element IDs conflict with deleted elements on SPX file open
Fixed: some elements that were converted from DGNv8 or DXF to become invisible
API changes
Fixed: memory management within the group of functions SelOrCurGetFPoses(), SelGetFPoses(), SelFreePoses(), DefaultSelectionSet::getPositions(), DefaultSelectionSet::freePositions()
spatix v020.010 (2020-11-10, expires 2021-01-31)
New feature: Lock mouse to grid ("View settings › Show Grid, View Settings › Grid › setup parameters", enable grid lock in locks toolbar)
New feature: MeasureTools IxApp used for measuring elements added to distributive. 3 tools: Measure Distance, Measure Angle, Measure Element (length, area, etc, but BIG elements are not supported yet)
New feature: Element Info tool added into MainToolCPP IxApp (nearby Choose element tool)
New feature: Extend Segment tool in the ManipulateTools (for now works with ELM_LINE and ELM_PLINE only)
New feature: Added more control over cursor shape visualization parameters (See "Edit › Preferences › View")
New feature: keyboard arrow keys navigate the active view
New feature: Render only each 5th element during view pan/drag/rotation/
New feature: Many improvements in DXF importer: Added Support for 3DFACE element, UTF-8 texts, better treatment of element styles
Fixed: Added latest Spatix Manual into distributive (opens up via "Help › Manual")
Fixed: "Help › FAQ and Help › Feedback" hyperlinks to spatix.com website
Refactor: Speeded up rendering of filled convex polygons (simpler triangulation algorithm is used in this case)
Fixed: several memory corruptions
Fixed: curve, arc and ellipses clipping by view window area
Fixed: Clipper operations for polyholes and ellipses, Clipper now moves/copies as-is those elements which do not intersect Clipper shape at all
Fixed: crash in view renderer
Fixed: crash in DebugTools
Fixed: improper update of layers in Layer Manager when Hide Unused is active after importing DXF
Refactor: Adjusted font sizes for all application widgets to be the same size font
Fixed: subtoolbars display in some cases
Refactor: starting from StageScene job we clear z-buffer after each job, if z-buffer is enabled
Fixed: view-parallel text element rotation, hittest and selection handles display
Fixed: crash with stereo windows hibernation
Fixed: some problems with view background color
Fixed: Adjust cursor for Choose element tool to be a Locate Cursor
Fixed: When many elements selected by the extended mode of the Choose elements — elements count is updated correctly
Fixed: big elements creation from points of more than 5000 points (e.g. affects TerraScan "Draw into design" feature for trajectories and big polygons)
API changes
New feature: Scan only Nth element in CadFile
New feature: Convex polygons now have EPF_ISCONVEX flag set in pel->h.state member
New feature: New better way to set up toolbars in the code (more #ifdef-friendly, IxApps code needs to be adjusted)
spatix v020.007 (2020-08-10, expires 2021-01-31)
SPX files compression
Spatix is less hungry to memory
stack memory usage optimization
OpenGL memory usage optimization
Layers GUI improvements
Restore proper rendering of Polyholes (with proper holes punching)
New IxApp for DXF files import / export
Performance optimizations
Over 5001-point big shapes are properly rendered, with zoom-factor dependent degradation
spatix v020.005 (2020-06-05, expires 2021-01-31)
Clipper for planar elements boolean operations — 1st beta version
clip/cut without closing contours not yet supported
clip/cut of pure vertical polygons (e.g. walls) is not working correctly
clip/cut of curve elements not yet implemented
clip/cut of a polygon having overlapping or intersecting edges is not working correctly
DGNv8 file format can be read by Spatix — 1st beta version
view settings are not yet read/decoded
no support for 2D elements yet
no support for XAttributes storage
no support for saving/writing of DGNv8
More ergonomics in GUI
levels management GUI
toolbars can be pinned together into floating islands
large icons for drop-down toolbars
toolbars now have caption, sub-toolbars have [x] button which allow to close them
welcome window which suggests to open file at startup
Other changes
improvements in performance of bulky operations of write/delete elements and render heavy mouse-dynamics
performance improvement for drawing on multiple views
some of the chrashdumps were addressed and bugs were fixed
spatix v020.002 (2020-04-14, expires 2021-01-31)
Layer manager — now it's possible to add, rename and delete layers, layers hierarchy is also supported with proper layer symbology resolving
Set expiration date to 2021-01-31
First version of Spatix Telemetry. It accumulates and periodically uploads the information about Spatix and IxApplications being executed on top of it to Spatix and TerraSolid servers.
Added cursor XOR mode setting. Can be set in "Preferences › Application › View".
Added setting for disabling scrollbars in MDI area.
Fixed: active text font and size selection
Fixed: view commands lifecycle in CFace
Minor changes About window
Fixed: SPX dirty state for undo/redo
spatix v020.001 (2020-03-18)
Got rid of cursor asymetry.
Added labels to the detached toolbars.
New basic view rotation command.
New stereo view navigation controls.
New stereo autofocus algorithm.
Reduced RAM memory usage per view.
Allow Cookies
This website uses cookies to improve your experience.