Change log


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: optimize DRngSet memory consumption
  • Refactor: optimize EldSplitByPlane() memory consumption
  • Refactor: replace SLayerSet definition from Maybe<QSet<lyrid_t>> towards BitMask — less conversions during rendering operations
  • Refactor: registerPreference() parameters reorder for convenience