Title: WebCGM
1WebCGM
- Interoperability for industrial-strength CGM
graphics - John C. Gebhardt
2Topics
- The requirements for a scalable graphics format
for the WWW - Why a CGM-based solution?
- An introduction to WebCGM
- Examples
- Implementation advice
- Summary
3Scalable Graphics Requirements
- Open, readily available specification
- Extensible
- Widely implemented w/reference code
- Good interoperability potential
- Wide range of raster/vector graphic primitives
- Flexible text and text font capabilities
4Requirements. Cont
- Versatile control of properties - transparency,
layering, line endings - Page-independent coordinate system
- Linking to/from groups of elements
- Pickable, active elements or groups
- Extractable metadata
5Why a CGM-based solution?
- CGM is an ISO standard with hundreds of
implementations - In 1999, the CGM standard will be available on
the internet in HTML format - CGM is used by many industries for 2D graphics
exchange and publishing - CGM Open members and others are united in
support of the WebCGM profile
6Why CGM?
- Rich set of raster and vector primitives
- Versatile structuring capabilities
- Compact binary encoding ideal for complex
technical graphics - Established profiling mechanism
- Established conformance testing capability
7 WebCGM
- Overview
- File Structure
- The roles of the picture
- Groups within pictures
- Group properties
- Content model
- Hyperlinking
- Graphical Content
- Encodings
8WebCGM Overview
- Submitted to W3C on August 19, 1998
- Issued as W3C Recommendation on January 21, 1999
- Several editor and viewer/browser implementations
under development - Meets W3C Scalable Graphics Requirements
- A profile of ISO/IEC 86321992
9WebCGM File Structure
Metafile
Picture Properties
Begin Picture
Picture Descriptor
End Picture
Picture
Picture Body
Picture body
Begin Picture Body
Control, Graphical Primitive, and Attribute
Elements Intelligent Groups with Properties
Symbol Libraries
10How pictures are used
- Independent graphical presentation
- Opaque background
- primitives rendered in order encountered
- Overlays to other content
- transparent background
- Symbol definitions
- One or more symbols per library
- opaque or transparent background
11Groups within pictures
- Named, typed collections of graphical primitives
with attached properties - Four group types are allowed
- graphical objects (grobject)
- layers or levels (layer)
- paragraphs (para)
- text within paragraphs (subpara)
- Groups can be navigation sources and targets
12WebCGM Architecture
Groups (grobject,layer, para, subpara) with
properties
Symbol Instances
Pictures -- Overlays Presentations
Symbol Definitions
13Properties of grobject
- ID - Unique ID (reqd)
- Name - Name (optional)
- LinkURI - Link (optional, multiple)
- ScreenTip - Descriptive text for interactive
display - Region - Optional spatial picking region
- ViewContext - rectangle to zoom to when pointed
to.
14Properties of layer
- ID - Unique ID (reqd)
- LayerName - Name of the layer (reqd)
- LayerDesc - Description of the layer (optional)
15Properties of para
- ID - Unique ID (reqd)
- Content - Searchable text (optional)
- LinkURI - Link (optional, multiple)
- ScreenTip - Descriptive text for interactive
display (optional) - Region - Spatial picking region (optional)
- ViewContext - rectangle to zoom to when pointed
to. (optional)
16Properties of subpara
- ID - Unique ID (reqd)
- Content - Searchable text (optional)
- LinkURI - Link (optional, multiple)
- ScreenTip - Descriptive text for interactive
display (optional) - Region - Spatial picking region (optional)
- ViewContext - rectangle to zoom to when pointed
to. (optional)
17WebCGM Content Model
18WebCGM Content Model
19WebCGM Content Model
20WebCGM Content Model
21WebCGM Content Model
22Hyperlinking
- Bi-directional
- From WebCGM Object to other objects, pictures,
CGMs, HTML files, or any content supported by
browser via one or more LinkURI properties - To WebCGM files, pictures, objects via a URI
fragment
23WebCGM Hyperlinks
Foo.cgm
Foo.cgm Foo.cgmP3 Foo.cgmP4.G2
G1
P1
G2
P2
P3
P4
P5
Symbol Instances
P6
P7
24WebCGM Hyperlinks, long form
Foo.cgmpword(ltpicture_idgt,ltpic_behaviorgt).objword
(ltobj_idgt,ltobj_behaviorgt)
Where pword picidpicseqno
objword idname and pic_behavior _blank
_replace
_self
_top lttarget frame
namegt obj_behavior view_context
highlight
highlight_all
25Graphical Content
- Subset of the ATA GREXCHANGE profile
- Highly expressive
- Easily implemented
- Includes Version 1,2, 3 elements
26Graphical Primitives
- Line, polyline, polygon, polygon set
- Rectangles, circles, ellipses, arcs, pie slices
- Graphical text -- restricted, appended
- Closed figures and compound lines
- Polysymbols
- Smooth curves -- Piece-wise cubic Bezier
- Raster images -- tiled G4, PNG, jpeg
27Attributes and Controls
- Line width, style, color, cap and join
- Fill with solid color, hatch pattern, bitmap
- Edge attributes similar to line attributes
- Line and fill patterns can be passed by name or
precisely defined in the metafile - Text font, character set (including Unicode),
size, orientation, skew, aspect ratio - Clipping to rectangular regions
28Encodings
- Clear Text -- for education and testing
- Binary -- for production use
29Whats not in WebCGM(but in CGM)
- Bundled attributes
- Segments
- Geometric and Interpolated fills
- Generalized text paths
- Protection regions
30Implementation Advice
- Join CGM Open
- Download free viewer(s)
- Buy the standard
- Get a good toolkit
- Look at the RAL source code
- Download the CGM test suites from NIST
31Summary
- WebCGM is an excellent method for publishing
intelligent hybrid 2D graphics on the WWW - It promises to deliver exceptional
interoperability between editing tools and
viewer/browsers - It will unleash a flood of new technical graphics
publishing applications