From: Dominik R. <ra...@vr...> - 2012-02-12 10:49:25
|
- **VistaKernel/Cluster/VistaClusterMaster: now supports multiple broadcast ports for swap syncing. This allowing for multiple slaves on one host. Use SYNCPORTS to provide comma-separated list of ports (SYNCPORT still works for single BC port, so no change required).** - VistaKernel/VistaSceneGraph: - **APICHG: SaveSubTree now accepts all IVistaNodes instead of just VistaGroupNodes** - **VistaMath/VistaBoundingBox: - APIADD: calls using VistaVectorMath types** - CHG: internal representation by VistaVector3D - STYLE: styleguide conformity - VistaKernel/GraphicsManager/VistaGeometry: - VistaMaterial: - **APIADD: Color-Getter/Setter now allow VistaColor in addition to float[3]** - **APICHG: GetName(), GetShininess(), GetOpacity() return float now (instead of using ref-to-float)** - VistaGeometry: - **APIADD: GetBoundingBox() with VistaBoundingBox return value** - STYLE: some more styleguides conformity - **Added VistaBase/VistaColor as a replacement of VistaColorRGB (in VistaGeometry). Supports alpha values and different formats, as well as mor operators etc. For now, only the class has changed - VistaCoreLibs functionality currently does not examine the alpha value (e.g. when setting a geometry's vertex colors) - this functionality will be added in the future. For now, to replaceing VistaColorRGB with VistaColor will result in the same behavior. - ADD: VistaBase/VistaColor - REM: VistaColorRGB (in VistaGeometry.h)** - FIX: VdfnThresholdNode absolute value check - FIX: VistaDfnViewerSourceNode now parses initial state - **ADD: model optimizer** - FIX: usage of wrong name for retreaval of chai3d transcodes - FIX: bug which occured in case not the right device was found - **ADD: Class for visualization of open gl primitives, e.g., lines, points. Similar to VistaOpenGLPolyLine, but supporting more primitives.** - FIX: missing variable initialization in DfnWindowSourceNode - **Added methods to print state of VdfnNodes/VfnGraphs for DebuggingPurposes. It can either be output manually upon a key trigger, or automatically on each update. Output can be redirected to any standard stream, a text file, or a dotty graph. These options are configured per InteractionContext Context's section of the ini file - AUTODEBUG [bool] if true, the context's debug info will be printed after every Update - DEBUGTRIGGER [char] key binding for manual triggering of debug output - DEBUGSTREAM: either a standard stream (vstr::out, vstr::warn, vstr::err, cout, clog, cerr), a valid filename, or dot. If dot is specified, the context is dumped in the format "RoleName_Data.dot"** - APICHG: VdfnPortFactory::CPortAccess now also takes Port-To-String fuctor - APIADD: PrintInfo() function for VdfnNode and VdfnGraph - APIADD: VistaInteractionContext API for Debugging - STYLE: simplified adding default-style Port- and FunctorAccess in VdfnUtil - FIX: Win32ThreadImp::GetThreadId working with windows 5.2 and below - VistaSystem: - UPD: if plugin reports a name different to the requested name, a warnign is emitted, but the plugin is still accepted - FIX: explicitely set driver and transcoder plugin names correctly extracted now - CMake-Build - UPD: changed VISTACORELIBS_LIBRARIES order (for correct static linkage) - FIX: msvc projs also exported when no specific component is requested - VistaFileSystemNode (VistaTools): - FIX: extraction of file/dir-name from full path with backslashes - VrpnDriverPlugin: - FIX: Corrected DeviceClassName - ADD: dfn node for converting VistaTransformMatrix to std::string - VistaVector3D( VistaBase): - **APIADD: Set/GetValues with multiple float/double params** - FIX: VistaVector3D now also copies w-component on operator= - ** Mergeback of EXTERNAL_TRANSCODES branch 11/10/29 svn-rev 23946** - **Cluster: Created a common base class for all ClusterModes, and implementations for Standalone and Master/Server, which replace the old use of ClusterAux and Master/Slave-specific classes. All functionality should be achieved over the abstract API (e.g. to check if one is master or standalone, dont compare the clustertype anymore, but check GetIsLeader(). Information about other cluster nodes is available over the new interface. Also manages creation of additional connections, DataTunnels, or NetworkSyncs - for this, the Slave should be given a range of free ports via the new ini key FREEPORTS. ** - **UPD: ClusterSlaves now have timeout on broadcast-sync-read (configurable by SYNCTIMEOUT ini entry, in ms) ** - **MOVE: Moved Clusterstuff (ClusterModes, DataTunnel, NetworkSyncImps) to VistaKernel/Cluster** - **APIADD: ClusterMode allows construction of new connections/DataTunnels/NetworkSyncs** - **ADD: Available ports for DataCTunnel/NetworkSync for slaves read from config file** - **APIREM: VistaDataTunnelFactory - job is done by ClusterMode now** - **APIREM: old VistaClusterClient and VistaClusterServer** - **UPD: VistaNetworkSync** - **VistaMainLoop: Main Application loop and event emitting was hidden in OpenSGSystemClassFactory, this was extracted to the new VistaMainLoop, controlling the event emitting, display updates, etc. It can also be replaced by a user-defined variant to alter the event flow or to add logging etc. ** - **ADD: VistaFrameLoop** - **APIADD: VistaSystem::GetFrameLoop and VistaSystem::SetFrameLoop** - REM: event controlling from OpenSGSystemClassFactory - ** ConversionFunction (VistaAspects): Added new namespace VistaConversion, containing generic conversion functions ** - **Provides templated FormString<> and ToString<> fucntions. These work for all basic types, all VistaMathTypes, and for all classes that have a operator<< resp. operator>> to a std::ostream. Furthermore, vectors, lists, and arrays of these types can be printed** - **ToString functions always succeed, FromString functions have three variants:** 1. taking target as ref-param and returning bool to indicate result 2. taking flag to determine how to react to conversion errors (ignore|print warning|throw exception) 3. returning result, throws exception on error - **Extend by: implementing operator<< or operator>>, or by spezializing ToString and FromString templates (either globally for all in VistaConversion, or in separate local file)** - **GetTypeName to retrieve (demangled) name of a type** - **Generic ConvertType<From, To> function and corresponding function object** - **CreateInitializedDefaultObject returns T() for classes, and 0-initialized for base types** - **To replace VistaAscpectsConversionUtils** - **Can be expanded to custom types by either defining std::ostream-operator<< and >>, or by creating a template specialization** - **VistaPropertyList (VistaAspects): Reworked API away from GetTheProperty* to more generic templated GetValue<> and SetValue<> (similar to new VistaConversion). This allows easier setting or getting of more complex datatypes (Arrays, VistaVector3Ds, etc.) It now also properly handles errors by returning bool on GetValue - No more use of global (and changeable) Nil-property** - **UPD: Throw exception when property-to-value conversion fails** - **UPD: GetProperty[Copy|Ref|ConstRef]() and GetSublist[Copy|Ref|ConstRef]() throws exception when property doesn't exist** - **APICHG: GetProperty --> GetPropertyCopy** - **APICHG: GetSublist --> GetSublistCopy** - **VistaIniFileParser (VistaTools): Added IniFileParser to replace VistaProfiler - it reads/writes ini files in the same format, but parses the whole file into a VistaPropertyList (or writes a file from one). Now also supports sub-sections (-> sub-proplists) in the ini-file ** - **VistaReflectionable: VistaReflectionable PropertySet/Get templates generally use VistaConversion functions (no more Convert-functor) Before, set-functors required an explicit conversion function pointer, get-functors didn't. Now, the generic ones use VistaConversion by default, while TVistaPropertyConvertAnd[G|S]et can be used to provide custom ones. As a consequence, the VistaPropertySet will no longer require the ConversionFunction pointer as ctor paramter, and custom versions (e.g. to get/set a VistaVector3D) can be turned to generic setter/getter since VistaConversion now also supports containers and math types.** - **APICHG: renamed to be more consisten:** - **VistaGetArrayPropertyFunctor --> TVistaPropertyArrayGet** - **VistaSetArrayPropertyFunctor --> TVistaPropertyArraySet** - **VistaPropertyListGetFunctor --> TVistaPropertyListGet** - **VistaPropertyListSetFunctor --> TVistaPropertyListSet** - **APIADD: TVistaPropertyArraySet now accepts both functors with const array and non-const array params** - **APICHG: some const-correctness** - VistaStreams: - APIREM: lib-wise outstreams were removed - **ADD: functions and manipulators for stream indentation** - **ADD: functions and manipulators for standardized warning and error prefixes** - **APIADD/CHG: general stream API** - **MOVE: VistaStreams moved from VistaBase to VistaTools** - **CHG: VistaNullStream now local imp of VistaStreamUtils (use vstr::GetNullStream())** - **D: function VistaStreams::MakeStreamThreadSafe to make arbitrary outstream threadsafe and to allow cross-thread output without message fragmentation** - **RENAME: ini-entries DUMPGRAPHS -> DUMPDFNGRAPHS and WRITEPORTS -> WRITEDFNPORTS** - **RENAME: DFN DriverSensorNode's parameters sensor -> sensor_index and sensor_id -> sensor_name** - VistaPickManager - **REM: removed VistaPickManager (and its events)** - Vista(De)Serializer (InterProcComm): - **APIREM: Read*Name and Write*Name Api** - VistaInterProcComm/VistaNetDataCollector: - APIADD: Interface for direct passing of established connection - VistaInterProcComm/VistaNetDataDispatcher: - APIADD: Interface for direct passing of established connection - VistaThread (InterProcComm) and implementations: - **APIADD: static VistaThread::GetCallingThreadIdentity()** - VistaConnection (InterProcComm): - **APIADD: VistaConnection::SetReadTimeout to define default timeout when using ReadXYZ API (before: always read without timeout)** - Added some google tests - DriverWindowAspect (VistaDeviceDrivers/VistaKernel): Formerly, there was an abstract window aspect in VistaDeviceDrivers, and a Kernel-specialized one in VistaKernel, adding an unnecessary dependency to the Kernel to these Drivers. This was changed by storing the OS-window-handle directly in the WindowHandle, so only filling it is implementation-specific - REM: VistaDriverWindowAspect - Kernel-specific version now fully replaced by AbstractWindowAspect - APICHG: VistaAbstractWindowHandle now accepts WIndowHandles by const ref, not by pointer, stores them as copy internally - VistaDisplayBridge (VistaKernel): - APIREM: Obsolete (duplicate) CreateDisplaySystemsFromIni - CHG: moved framerate display overlay from GraphicsManager to DisplayManager (thus, no more DispMgr dependency on GrMgr) - APICHG: AddSceneOverlay and RemSceneOverlay now take Viewport pointer instead of name - VistaDisplayManager (VistaKernel): - APICHG: CreateVistaWindow now takes ConfigName+Proplist instead of display and proplist - CHG: VistaWindow now sets section name as default (not name + pointer) - STYLE: avoiding warnings from SetPropertyByList in display setup - APIADD: AddSceneOverlay and RemSceneOverlay with Viewport pointer instead of name - **APICHG: Add2D[Text|Bitmap|Line|Rectangle] -> New[Text|Bitmap|Line|Rectangle]** - VistaWindow (VistaKernel): - **FIX: Reflectionable name changed from FULL_SCREEN to FULLSCREEN (as advertised in comments)** - APIADD: GetWindowId - REM: DrawBorder API - was not actually used - VistaDisplayEvent (VistaKernel): - **REM: VistaDisplayEvent - was not properly implemented anyways, use Observeable property of DisplayEntities instead** - **UPD: enhancing of DisplayEntities' Observer notification** - VistaSceneOverlays (VistaKernel): - **APICHG: ctors now require DisplayManager and either viewport or viewportname** - CHG: All overlays now register themselves on creation (no longer need user-call to VistaDisplayManager::AddSceneOverlay) - WindowingToolkit (VistaKernel): - MOVE: Moved VistaWindowingToolkit to DisplayManager - APICHG: Windowtoolkit now created and maintained by DisplayManager - APICHG: Reworked Interface of WindowingToolkit - now more abstract, less glut-based - APIADD: WindowingToolkit can now activate Stencil and Accumulation Buffer - UPD: runs without any window - VistaSystem (VistaKernel): - FIX: absolute path comp now handles mixed / and \ - VistaSG and Bridges (VistaKernel) - CHG: renamed VistaSG to VistaSceneGraph - **APICHG: LoadNode and variants have optional parameter bVerbose - toggles info output (defaults to false)** - VistaGraphicsManager: - **APICHG: Get/SetCullingState -> Get/SetFrustumCullingState** - VistaKernel: - Updated internal initialization phase to use IniFileParser+PropertyList - structured VistaSystem a little better (more subroutines) - STYLE: removed usages of GetVistaSystem singleton access in Corelibs - VistaTransformMatrix (VistaMath): - **UPD: Changed internal storage to column-major** - **APICHG: operator[] returns VistaTransformMatrix::Row instead of float* (to wrap row-wise access to column-major data )** - **APIADD: float* GetData for direct access to internal storage** - **APIADD: operator( row, column )** - UPD: VistaTools are now dependent on VistaInterProcComm - CHG: Moved WebInterface from Kernel to KernelOpenSG, removed ini entries - VistaSceneOverlay - **APICHG: now has two ctors: one taking DisplaySystem+Viewport name, one taking Viewport pointer** - **APIADD: purely virtual UpdateOnViewportChange for VistaSceneOverlay** - APIADD: access to attached viewport - ADD: SceneOverlay observes viewport, calls UpdateOnViewportChange - VistaSimpleTextOverlay: Vista3DTextOverlay: VistaVirtualConsole: - APICHG: adjusted ctors and viewportupdates to SceneOverlay changes - APICHG: removed unused size and AdjustmentFlags from VistaVirtualConsole ctor - FIX: VistaGroupNode::IsValidIndex index check - STYLE: warning-free build (msvc and gcc 3.1.5) - STYLE: removed all pragma warning(disable), or push-popped them - STYLE: enhanced VistaSystem initialization output - STYLE: some more styleguide conformity - STYLE: removed lots of warnings - STYLE: removed plenty of empty doxygen comments - STYLE: enhanced Vista initialization output - FIX: 64bit atomics did not work on 32bit-linux - FIX: OpenCVFaceTrackFriver runnng with OpenCV version 2.1 - **ADD: VistaGenericFactory and VistaMarshalledObjectFactory** - FIX: VistaTransformMatrix::SetBasisMatrix( VistaQuaternion ) typo in identity matrix init - VistaDfn3DMouseTransformNode (VistaKernel): - FIX: works correctly with non-symmetric projections now |