Ayam Changelog

What's new in Ayam 1.20

Mar 30, 2012
  • Bug Fixes:
  • the weights of the Cobb NURBS sphere are wrong (SF 3287828)
  • Tcl error when applying the ViewAttrib property (SF 3295757)
  • property reset does not work after object selection change (SF 3295758)
  • last element of dynamic property GUIs not visible (SF 3301967)
  • extracting the boundary of patches with differing orders (SF 3312039)
  • conversion of quadrics tNURBS (SF 3322311)
  • setting the display mode/tolerance of PatchMesh objects (SF 3360488)
  • reverting interpolating curves with custom derivatives (SF 3366276)
  • merging transformed PolyMeshes with normals (SF 3374188)
  • crash in surface knot insertion (SF 3376414)
  • views getting the wrong type temporarily (SF 3382382)
  • saving of the environment scene file (SF 3410856)
  • resize menu entries of external views are deactivated (SF 3414694)
  • caps of transformed outlines/holes (SF 3439485)
  • view camera changing inadvertently when another view is changed (SF 3442122)
  • OffsetNP objects are missing from exported RIB files (SF 3445410)
  • Gordon objects with transformed intersection patches (SF 3448526)
  • conversion of torii with phimin/phimax not on default fails (SF 3481314)
  • conversion of transformed quadrics with non-standard parameters (SF 3484008)
  • toXYNC resetting the scale attributes if an error occurs (SF 3485090)
  • operations on rational NURBS modify shapes (SF 3496743)
  • the application of static and dynamic code checking tools (splint, cppcheck, clang, valgrind, mudflap, drmemory) lead tthe discovery and fix of numerous smaller bugs (mostly memory leaks in error cases)
  • Modelling:
  • knot rescaling of NURBS curves/surfaces nlonger requires custom knots
  • added support for periodic surfaces tbe created by Birail1
  • added object type "IPatch" for interpolating surfaces
  • added centripetal parameterization tsurface interpolation
  • the surface interpolation (e.g. in Sweep and Skin objects) is more robust, (can now cope with degenerate rows/columns in the input data)
  • added uniform parameterization tICurve
  • improved flashing of editable points for multiple selected objects
  • added object type "Mirror" (essentially a Clone in disguise)
  • Instance object points are not editable anymore due tcurrently unsolvable notification problems
  • moving the mouse pointer across the origin when scaling nlonger leads tbroken (i.e. very small) scale attributes
  • added setting the mark tselected points bounding box center (shortcut )
  • closed cubic interpolating curves now alsuse the EDLen parameter properly
  • improved initial derivatives when switching from automatic tmanual derivatives for ICurves
  • improved snapping points from half grid coordinates tthe grid by introduction of a mouse pointer warping facility (not available on MacOSX Aqua)
  • OffsetNP objects can now be associated with a material
  • added modelling actions tincrease/decrease the multiplicity of selected NURBS curve control points, new keyboard shortcuts: /
  • added hidden preference option "TagResetTagged" that controls whether invoking the tag (select) points action should clear the current point selection
  • improved curve splitting for curves with multiple knots
  • improved focus handling of direct point edit action
  • added "UVSelect" option tConcatNP object, this allows tdetermine in which direction a single parameter patch should be split before the concatenation
  • ConcatNP objects now allow curve and curve providing objects tbe used as parameter objects, alsin a mix with patches
  • added "Order" parameter tConcatNP, that allows tspecify the desired U order of the concatenated surface
  • added "FillGaps" and "FTLength" parameters tConcatNP that control the creation of fillets similiar tConcatNC
  • added custom knots tConcatNP sthat the shapes of parameter surfaces can now be preserved exactly (similar tConcatNC)
  • improved drawing of torii with phimin/phimax not on defaults
  • toXYNC can now work with ACurve and ICurve objects and is thus renamed ttoXYC (old command name still available but deprecated)
  • improved fillet creation of ConcatNC for parameter curve orders different from 4
  • converted Sphere patches now have the same direction as other quadrics tmake it easier tcombine them with ConcatNP
  • added tool (and corresponding scripting interface commands "refineuNP"/ "refinevNP") trefine NURBS surfaces
  • improved refinement of periodic curves (they are refined on their complete length now)
  • added region support trefine curve tool: a region trefine can be specified by selected points
  • improved handling of custom knots for the insert/delete point actions
  • GUI:
  • the property GUIs of Birail1, Birail2, Extrude, Gordon, Skin, Sweep, and Text objects are now properly saved (the data is not applied) for AddBevel/RemoveBevel
  • renamed direct point edit action tnumeric point edit
  • empty fields are now allowed in the numeric point edit dialog tallow "nchange" for the respective coordinate
  • the numeric point edit dialog now supports scripts and variable accesses in the entry fields
  • the ViewAttrib property GUI nlonger unconditionally sets the mark, this is now controlled by the new entry "SetMark" instead
  • zooming views via the keyboard is now reversible
  • the amounts of rotation and zooming per keyboard are now configurable via the ayamrc file
  • ICurve property GUI now only displays SDLen/EDLen entries when actually used and the Derivatives entry is now, as for the IPatch, a menu
  • improved tooltip placement and management
  • reset layout is more robust now
  • dialog window and balloon placement is now more robust wrt. multi monitor setups
  • removed "RGTrans" GUI preference option, all rendering GUI windows are now always transient
  • Import/Export:
  • RIB export of tool objects now supports PV tags
  • Scripts/Scripting Interface:
  • added "concatS" scripting command tconcatenate surfaces
  • added "interpuNP"/"interpvNP" scripting commands tinterpolate surfaces
  • added script "apnt.tcl" tautomatically switch a view (or all views) tpoint modelling, after the point selection action was used
  • added "remknuNP"/"remknvNP" commands tremove knots from surfaces
  • added "-i" option tall knot removal commands tspecify a knot by index (not by value)
  • renamed "shiftClosedBS" t"shiftC" command, "shiftC" can now alsshift/cycle normal closed NURBS curves, ICurve, and ACurve objects
  • improved range error reporting (now printing the valid range)
  • getPnt/setPnt now support writing to/reading from lists of double values (without double-string conversion i.e. without loss of precision)
  • getPnt/setPnt now allow tget/set all control points of an object
  • getPnt nlonger unconditionally writes tglobal variables
  • getPnt nlonger requests a variable for w tbe provided in "-eval" mode
  • scripts and plugins can now create their own view window keyboard shortcuts
  • renamed "forceNot" command tmore recognizable "notifyOb"; for compatibility with existing scripts, the old name still works
  • added "-parent" option t"notifyOb" command
  • Documentation/Example Files:
  • historic information (i.e. when did a feature appear) are now presented in a less obtrusive way (as footnotes)
  • improved layout of index, object trees, and code examples
  • Installation:
  • there are now Makefile targets tintegrate Ayam with a Unix desktop environment (e.g. Gnome and KDE) via desktop shortcut, menu entry, and file type

New in Ayam 1.19 (Mar 18, 2011)

  • Bug Fixes:
  • fixed setting the FilterWidth for RIB export (SF 3148250)
  • fixed read only points of ExtrNC/ExtrNP/OffsetNC/OffsetNP objects appearing in wrong places (SF 3154051, 3154053)
  • fixed is_rat attribute of revolve object (SF 3159003)
  • fixed revolve for curves that touch the axis of revolution (SF 3159009)
  • fixed RIB export of SDMesh objects with tags in Affines simple RIB writer (distributed with Ayam, nSF bug item created)
  • fixed "Add Bevel" command entries in various tool object property GUIs (SF 3164571)
  • fixed boundary curve extraction for surfaces with unclamped knot vectors (SF 3194851)
  • fixed small memory leak in ExtrNC object (in Boundary mode) (SF 3194853)
  • fixed provide of script for multiple objects (SF 3210473)
  • fixed provide of clone for multiple objects (SF 3210478)
  • Modelling:
  • added plugin "subdiv" that, with the help of "Subdivide2.0", can be used timprove the display of sdmesh objects by real subdivided surfaces
  • added options tcontrol subdivision level and drawing tsdmesh objects
  • NURBS modelling tools now only delete the selected points from objects where the modelling operation succeeded
  • added "-createmp" option tthe creation of NCurve/NPatch objects
  • offset surfaces now work for closed/periodic surfaces (in all possible combinations of open/closed/periodic for U and V)
  • aded chordal and centripetal knot types tNURBS patches
  • added new curve offset algorithm "Hybrid"
  • renamed "Bevel" curve offset algorithm t"Point"
  • removed curve offset algorithm "Bevel3D"
  • added cross section shape defining parameter curve tBevel object (allows tcreate arbitrarily shaped bevels)
  • rational coordinates are nlonger stored with the weights pre-multiplied internally (homogenous => euclidean)
  • GUI:
  • main menu "Edit/Material" now works with multiple selected objects when creating materials
  • added "ErrorLevel" preference setting that controls how many messages appear in the Ayam console
  • removed the "ErrorLevel" preference setting from all import/export parameter dialogs, all plugins use the global preference setting now
  • added access tadvanced (command line) arguments tthe creation of curve/npatch objects via new create dialog entry field "AddArgs"
  • added View attribute "EnableUndo" that allows tdetermine whether view actions should be recorded in the undsystem
  • parameter dialogs of knot manipulating tools now display the original knot vector as reference
  • Scripts/Scripting Interface:
  • added script ("autorot.tcl") that automatically rotates a view
  • the create callback of the SDMesh object now supports much more options tcontrol the initially created object

New in Ayam 1.18 (Oct 30, 2010)

  • Bug Fixes:
  • fixed direct point editing not setting the mark (SF 2993441)
  • fixed continuous complete notification for Script objects (SF 3001239)
  • fixed find u action failing for transformed curves (SF 3006822)
  • fixed find u action not setting the mark corectly (SF 3006824)
  • fixed Revolve caps in B-Spline mode (Sections != 0) (SF 3012391)
  • fixed potential crash in NURBS patch clamp V tool (SF 3012393)
  • fixed setting the BGImage via view menu (SF 3023248)
  • fixed BGImage drawing on Win32 (SF 3023249)
  • fixed skins with periodic chordal/centripetal curves (SF 3030062)
  • fixed false positives and crashes of instance DnD/C&P (SF 3031448)
  • fixed in-place conversion leading to broken scenes (SF 3032589)
  • fixed drag and drop with multiple objects selected by keyboard (SF 3036465)
  • fixed current level after tree reset/rebuild (via ) (SF 3044564)
  • fixed drawing/shading of sphere objects (SF 3054130)
  • fixed single point editing of PolyMesh and SDMesh objects (SF 3094086)
  • Modelling:
  • the default zoom view () and direct point edit () keyboard shortcuts are now () and () respectively to make way for two very important new shortcuts:
  • modelling actions like move, scale, or rotate no longer decide what to transform (objects or selected points) based on the point selection; now always objects are transformed, until the user switches explicitly to points using (while can be used to switch back to objects)
  • the point transformation state is displayed in the modelling mode icon by a little red dot
  • the mark is now reset on double
  • direct point editing now uses the point selection instead of an own pointer; thus, it now works with multiple selected objects, and one may apply coordinate values to multiple (selected) points
  • the Revolve tool object now supports arbitrary ThetaMax values in B-Spline mode (Sections != 0)
  • added Arc and Radius parameters to create closed B-Spline curve tool
  • added Radius, TMin, and TMax parameters to NCircle object creation dialog
  • added modelling action to snap the selected points to the mark (new shortcut )
  • added modelling action to snap the selected objects to the mark (new shortcut )
  • added view action to pan the view to the mark (new shortcut )
  • to avoid clashes, collapse and explode actions have new default keyboard shortcuts: and
  • the find u modelling action now works with provided objects, and is more exact
  • added find uv modelling action that finds the u and v parameters for a picked point on a NURBS surface; invoke via new view shortcut:
  • added preference setting and facility to manage a global mark, if enabled, all views share a single mark; thus, one can set it in one view and use it in another
  • improved order changes for periodic NURBS curves via the property GUI
  • added "3DPVN" curve offset mode that offsets a curve along normals supplied via a primitive variable tag
  • creating ExtrNC/ExtrNP objects via the main menu now automatically adds a remove property tag ("RP Transformations") to the created instance child so that the instance always follows the transformations of the surface the curve/sub-surface is extracted from
  • NURBS curve clamping now works with half clamped curves and also with curves where there are multiple knots in the end region(s)
  • NURBS curve clamping can now also clamp only one end of the curve
  • NURBS patch clamping now works with half clamped patches and also with patches where there are multiple knots in the end region(s)
  • NURBS patch clamping can now also clamp only one end of the patch
  • the point insert/delete modelling actions now work with multiple selected objects
  • several objects now support read only points, which can be selected and their coordinates inquired (for snapping/aligning or transformation purposes) but they can not be modified; the supporting objects are: Box, Sphere, Cylinder, Disk, Cone, Torus, Hyperboloid, Paraboloid, Extrude, Revolve
  • GUI:
  • AutoFocus is now available (again) for single window GUI mode; here it manages the focus of internal widgets (views, tree, properties, console)
  • Tool dialogs now display a more descriptive window name
  • tree drag and drop now keeps the object selection intact and opens the target level
  • starting modelling actions from the toolbox now also considers the AutoFocus preference setting, if enabled, the action is started in all views
  • Scripts/Scripting Interface:
  • number conversion errors are now correctly detected and reported in all scripting interface commands
  • added "-world" option to setPnt/getPnt commands (to transform coordinates from/to world space)
  • renamed "-p" option to "-eval" for getPnt
  • getPnt can now work with arbitrary object types (even from plugins) as long as they support single point editing; i.e. it now works with PolyMesh, SDMesh, and SDNPatch objects
  • the "hSL" command has been removed from safe interpreters, use "sL" instead
  • added a JavaScript interpreter plugin
  • Script objects can now use arbitrary languages provided by plugins (e.g. JavaScript)
  • added a example Script object script (written in JavaScript) that creates a Polyhedron from a Conway notation ("polyhedron.js")

New in Ayam 1.15 (Nov 14, 2008)

  • This release adds support for approximating curves and improves the offset curves.
  • Script objects now maintain individual parameter sets, Gordon caps (from non-planar curves) are more robust.
  • In addition, the keyboard navigation and focus management in the GUI have been improved a lot. The usual heap of bugfixes completes this release.