Thank you for downloading this release of the SEDRIS Software Development Kit (SEDRIS SDK). The SEDRIS SDK is the development environment for building applications and components that can unambiguously represent and interchange environmental data.
This release has been tested on multiple platforms, such as Linux, Irix, Sun, and Windows 98/Me/NT/2000/XP. For detailed information on platform and compiler versions supported see the Build Kit.
The SDK includes tools useful for accessing, testing, and viewing SEDRIS Transmittal Format (STF) files (also called transmittals). Some of these tools are designed to be used from the command line, but there is also an application that can display 3D geometry present in a transmittal using the OpenGL libraries. More information on these applications is available in the Tools and Utilities page.
This release is compatible with the following SEDRIS technology components:
- Data Representation Model (DRM), version 4.1
- Environmental Data Coding Specification (EDCS), version 4.1
- Spatial Reference Model (SRM), version 4.1
- Transmittal Access (TA), version 4.1
- SEDRIS Transmittal Format (STF), version 4.1
This release includes the following SEDRIS implementations:
- Reference DRM C implementation, version 4.1.0
- Reference EDCS C implementation, version 4.1.0
- Reference SRM C implementation, version 4.1.0
- Reference TA C implementation, version 4.1.0
- Reference STF C implementation, version 4.1.0
This reference implementation is compliant with the following SEDRIS IS specifications:
- (ISO/IEC 18023-1) SEDRIS -- Part 1: Functional specification
- (ISO/IEC 18023-3) SEDRIS -- Part 3: Transmittal format binary encoding
- (ISO/IEC 18024-4) SEDRIS language bindings -- Part 4: C
- (ISO/IEC 18025) Environmental Data Coding Specification (EDCS)
- (ISO/IEC 18041-4) EDCS language bindings -- Part 4: C
- (ISO/IEC 18026) Spatial Reference Model (SRM)
- (ISO/IEC 18042-4) SRM language bindings -- Part 4: C
The EDCS and SRM will be updated on a regular basis, probably at a faster rate than the other SEDRIS technology components. New versions of these components will easily integrate into your current SEDRIS environment using simple file replacements.
For help, comments, and bug reports please send email to help@sedris.org. If you are an associate, please use se-coders@sedris.org.
Return to: Top
This version of the SDK is being made available in multiple distribution formats. In addition to source code, pre-compiled binaries for all supported platforms can be downloaded from the SEDRIS web site (www.sedris.org). You may also download separate distributions of the EDCS SDK and SRM SDK technology components in both source and pre-compiled binaries form.
The following matrix table shows the contents of the different packages for the SEDRIS SDK distributions and the directories in which you will find them:
Package and Contents bin: Executable binary applications
docs: Documentation, including Release Notes, Migration Guide, and Reference Manual
include: Headers for SEDRIS Technology Components
lib: Compiled binary libraries
src: Source code for SEDRIS Technology Components and Applications
transmittals: Sample SEDRIS STF transmittals
Complete Source Suite:
- All SEDRIS Technology Components
- All SDK Applications
X X X Complete Binary Suite:
- All SEDRIS Technology Components
- All SDK applications
X X X X X Return to: Top
The following table may assist developers in finding the documentation that best matches their needs:
Release Notes Fixes and Limitations Build Kit Migration Guide Tools And Utilities SDK Reference Manual New user with
binary distributionRead Read Read Read New user with
source code distributionRead Read Read Read Read Experienced user with
binary distributionRead Read Read Read Experienced user with
source code distributionRead Read Read Read Read Return to: Top
The SEDRIS SDK is distributed as a GNU-zipped tar file for Unix systems and a Zip file in Win32 systems. If you have obtained a source distribution, you will need to build the SDK after installation in order to run the applications and test your setup. Instructions for building the SDK are located in the Build Kit, along with instructions on Testing the Build. If you have a binary distribution, you can proceed to Testing the Build after finishing the installation.
Note: If you have an earlier version of the SDK and you haven't changed its default installation directory, you may want to do it now because this version of the SDK may overwrite it.
To install, extract the contents of the compressed file:
- Unix
Use the "tar" and "gzip" commands to extract the contents of the SDK:
using the appropriate filename for "sdk_file.tgz".gunzip -c sdk_file.tgz | tar xf -If you have GNU tar installed, you can use the following command instead:
tar xzf sdk_file.tgz
- Win32
Use WinZip or other decompression utility to extract the contents of the downloaded file.
See the Build Kit page for information on building the SDK, testing the build, and linking your applications and/or libraries against the libraries in this SDK.
Note that the file name for binary releases includes the OS/System architecture type as part of the name. After extracting the software, users should see a top-level "sedris" directory. Binary releases associated with different OS/architecture can be installed on a common "sedris" directory. This is to allow users who work on several platforms to install all the releases under a common "sedris" directory in a shared network drive. In that case, on each installation, the non-OS-specific files are replaced by the new release and the OS specific libraries and executables are stored under their respective sub-directories under the "lib" and "bin" directories discriminated by their platform/version/architecture combination.
Return to: Top
The SDK Documentation is divided into the following areas:
- Release Notes (this document)
- Describes the capabilities of this release, its contents, and supported platforms and compilers.
- Build Kit
- Details the build options and procedures for compiling and linking the software, how to test the build, and how to link applications and libraries against the SDK.
- Fixes And Limitations
- Describes the fixes and known limitations of this release.
- SDK Reference Manual
- Provides links to detailed documents for the DRM, EDCS, SRM, API, and STF technology components.
- Tools and Utilities
- Describes the tools and utilities included with this release, such as Depth and Model Viewer.
- Migration Guide
- Provides information on procedures and utilities available to migrate applications from SDK Release 3.1.x to Release 4.0.
Return to: Top
This release includes several applications and sample data that demonstrate the use of the SEDRIS SDK to create and access STF files.
Applications (also see Tools and Utilities):
Applications common to C and C++ SDKs -
- Depth
- An application that traverses an STF file and dumps the objects in text format. See a sample run of the Depth tool.
- Model Viewer
- A 3D viewer that can display the <Model> geometry using OpenGL. See a sample run of the Model Viewer tool.
- ITR Test
- An application that demonstrates the use of the Inter-Transmittal Referencing mechanism to link multiple STF files.
- STF Test
- A sample application that creates and populates an STF transmittal.
Applications unique to the C SDK -
- Rules Checker
- A tool that checks the semantical correctness of an STF transmittal. See a sample run of the Rules Checker tool.
- Syntax Checker
- A tool that checks the syntactical correctness of an STF transmittal. See a sample run of the Syntax Checker tool.
Sample STF transmittals and related files:
- test.stf
- Contains one <Model> with 3 polygons resembling a famous mouse. Uses LSR for its environment. There are no textures, features, or grids. There is one polygon in the <Environment Root> (green color).
- sample_comm.stf
- Contains a model of a communications console. It demonstrates texture mapping.
- sample_chair.stf
- Contains a somewhat complex model of an office chair.
- atm_grib.stf
- Contains sample atmospheric data (wind speed and temperature) stored using the <Property Grid> class.
- sedris.rsl
- A sample SEDRIS resolution file for resolving transmittal identifications in Uniform Resource Name (URN) to explicit transmittal root file names. This resolution file can be used in conjunction with the transmittals generated by the itr_test utility application to resolve all the necessary transmittal references. Redefine the root path in the sedris.rsl to the one in use.
Return to: Top
This section describes the following environment variables that are available for users to configure their runtime environment:
Runtime Variables common to C and C++ SDKs -
- SEDRIS_RESOLVER_PATH
This variable specifies the path(s) where the SEDRIS resolution (*.rsl) files reside. There can be more than one resolution file in the paths provided. The default path is where the running application resides.
Runtime Variables unique to the C SDK -
- SE_API_MEMORY_MODEL
This variable allows the user to specify, at a high level, the amount of memory to use. Its allowed values are SMALL, MEDIUM, and LARGE. The default setting is SMALL. Each of these three choices will set the default values to the subordinate memory model environment variables SE_RAIF_MAX_OBJECT_CACHE_SIZE and SE_STF_BLOCK_CACHE_SIZE:
- SE_RAIF_MAX_OBJECT_CACHE_SIZE
- RAIF maintains a cache of objects that are not currently in use by any user application, i.e., these are objects that have no handles to them but which are cached for faster access. SE_RAIF_MAX_OBJECT_CACHE_SIZE specifies the number of objects that RAIF will maintain in the cache; the default is the minimum amount of 1024.
- SE_STF_BLOCK_CACHE_SIZE
- This variable is used internally by STF to specify how many blocks to keep in memory. Every file contains 2048 blocks; the more blocks in memory the less have to be instantiated. The minimum value of this variable is 4096.
If SE_API_MEMORY_MODEL is set and the user overrides the subordinate variables, then the overriding values will be used.
The typical user will not care about these variables, in which case the default values will be used. Most likely, only the core developers will care about these variables, so that is why the Memory Model variable specifies one of three preset memory sizes rather than being more configurable. The following are the defaults for each choice:
Memory Model Default Setting SMALL
- SE_STF_BLOCK_CACHE_SIZE: 4096
- SE_RAIF_MAX_OBJECT_CACHE_SIZE: 1024
MEDIUM
- SE_STF_BLOCK_CACHE_SIZE: 8192
- SE_RAIF_MAX_OBJECT_CACHE_SIZE: 65536
LARGE
- SE_STF_BLOCK_CACHE_SIZE: 16384
- SE_RAIF_MAX_OBJECT_CACHE_SIZE: 131072
There are three considerations when setting these environment variables where efficiency would be gained:
- Object interconnectivity
- If a transmittal has a high amount of object sharing and hence is highly interconnected, the user could benefit by enlarging the memory model, which causes more objects to be maintained in memory. Since in highly interconnected transmittals, the same objects will be encountered many times, maintaining them in memory means that they will not have to be re-instantiated each time they are encountered. The API can directly access them and the user will have immediate access, rather than having to read them from disk or convert them in memory.
- Traversal algorithm
- The second area of impact depends on the user's Traversal algorithm. The user could benefit from memory model enlargement if the user consumes/produces transmittals in a manner in which the same transmittal areas are visited repeatedly. In the case where the user has simple depth-first traversal and processes most objects only once, there is no benefit in enlarging the memory model.
- <Data Table> production
- The third area affected is specific to data providers of <Data Tables>. Using a small memory model while a <Data Table> is being produced will optimize the <Data Table>'s size on disk, while a large memory model will optimize it for speed of consumption.
Return to: Top
The first entry of the table below lists the SEDRIS Change Requests (SCRs) implemented in this release. An SCR is the means by which users make their requests for SEDRIS technology changes as either a functional enhancement or a software problem. Users can make such requests via the SCR Form Web Site. The SEDRIS Associates can review the status of the SCRs at the SEDRIS website while the non-associates can obtain their status by sending a request for specific SCRs to se-scrccb@sedris.org.
Please see Fixes And Limitations for detailed information on software fixes and known limitations/defects.
The following table entries provide a summary of the major improvements in each one of the SEDRIS technology components and changes to miscellaneous items such as the build environment and compiler support.
SEDRIS Change Requests (SCRs) addressed None. DRM
- Compliant with ISO FDIS SEDRIS Part 1 - Data Representation Model (DRM) (ISO/IEC 18023-1)
- <Access>
Instances of the Legal Constraints and Security Constraints classes that replaced <Access> are now required to always be components of an Identification instance. Consequently, for any object X that previously had an <Access> component, the Identification component of X will now have the corresponding Legal Constraints and / or Security Constraints instances as components. In a 4.0.x to 4.1 conversion, if X did not previously have a <Description> component, X would have a new Identification component added for this purpose.- Citation
If a Citation instance C was previously a component of an object X, where X is an instance of any class other than Keywords or Source, C shall instead be a component of the Identification component of X, unless X was a <Cross Reference> instance. (In that case, C shall not be converted.)- Conformal Behaviour
Consult the clarified constraints on this class to ensure that instances of it are being used in a valid context.- Literal, State Data, State Related Features, State Related Geometry
In conversion from 4.0.x to 4.1, the old value_characteristic union member has been removed in compliance with EDCS. This was not previously a valid case, so during conversion an occurrence of this will generate an error message.- The universal flag of a topology volume has been moved from the shell class to the volume class.
- Property Description, Property Value
The inheritance of Property instances are explicitly stated through the new apply_property_inheritance field of <Property>.- Responsible Party
For every Responsible Party component R of an object X, the relationship between X and R shall now have a Role Data link object, taking over what was previously the role field of Responsible Party.SRM
- Compliant with the ISO FDIS Spatial Reference Frame (SRM) (ISO/IEC 18026)
- Compliant with the ISO FDIS Spatial Reference Frame C Language Binding (ISO/IEC 18042-4)
EDCS
- Compliant with the ISO FDIS Environmental Data Encoding Specification (EDCS) (ISO/IEC 18025)
- Compliant with the ISO FDIS Environmental Data Encoding Specification C Language Binding (ISO/IEC 18041-4)
- This version of EDCS is the implementation of the ISO EDCS specificaion FDIS version. Therefore the concepts defined herein will be consistent with that specification.
- EDCS_Attribute_Value's EDCS_Value_Characteristic_Code field has been removed. Any object needing to specify this information shall specify a <Property Characteristic> component instead.
Transmittal Access C API
- Compliant with the ISO FDIS SEDRIS (Transmittal Access) C Language Binding (ISO/IEC 18024-4)
- Compliant with the ISO FDIS SEDRIS Part 3 - SEDRIS Transmittal Format (STF) (ISO/IEC 18023-3)
- The storage and retrieval of Mesh Face Table Data is now performed with 2 new functions.
Transmittal Access C++ API
- Compliant with the ISO FDIS SEDRIS Part 3 - SEDRIS Transmittal Format (STF) (ISO/IEC 18023-3)
Return to: Top
Questions, comments, and bug reports should be sent to help@sedris.org.
If you are an associate, please send email to se-coders@sedris.org.
Return to: Top
These links require Internet access:
Return to: Top
Copyright © 2006 SEDRIS