View
213
Download
0
Category
Tags:
Preview:
Citation preview
06 May 2003 Stylable CGMXML Europe 2003, London
Stylable CGM
Dave CruikshankThe Boeing Company
Lofton HendersonHenderson Consulting
06 May 2003 Stylable CGMXML Europe 2003, London
CGM Version 4
• The CGM standard (ISO 8632:1999)– CGM V4 - Application Structuring
• Syntax to define application structures (APS) as graphical groups
• Syntax to associate attributes to APS• Definition of Semantics accomplished through
profiles
06 May 2003 Stylable CGMXML Europe 2003, London
WebCGM Functionality
• WebCGM developed by CGM Open in collaboration with W3C graphics experts
• WebCGM profile approved by W3C – 1999
• WebCGM Release 2 published - 2001
06 May 2003 Stylable CGMXML Europe 2003, London
WebCGM Functionality
• Requirements– Navigation
• Graphical object to graphical object within a CGM file• Graphical object to graphical object in another CGM file• Graphical object to a text objet
– Query• Search for a graphical object based on an attribute
– Data extraction• Retrieve non-graphical metadata from a graphical object
06 May 2003 Stylable CGMXML Europe 2003, London
WebCGM Functionality• IG requirements
• Navigation
• Query
• Extraction
• Graphical Format Capabilities
• Structuring -- hierarchical object tagging
• Non-graphical properties
• Object id/naming
Begin APS <id> <type> <inh> ... APS Attribute <type> <val> ... Begin APS Body ...graphics to draw object... ...and/or, nested ApS...End Application Structure
CGM Capability
06 May 2003 Stylable CGMXML Europe 2003, London
WebCGM Functionality
• Semantics4 APS types:
• grobject• layer• para• subpara
APS Attributes:
• Region• LinkURI• ViewContext• LayerName• LayerDescription• ScreenTip• Name• Content
06 May 2003 Stylable CGMXML Europe 2003, London
WebCGM StructurePicture body
layer grobject
grobject para
grobject para
subpara
subpara
grobject para
subpara
06 May 2003 Stylable CGMXML Europe 2003, London
Motivation for Stylability
• Interoperability among vendors demonstrated several times
• Proprietary DOM implementations being developed for external browser control
06 May 2003 Stylable CGMXML Europe 2003, London
Approach
• CGM has inherent style, but…– WebCGM profile says:
• ‘While WebCGM is a binary file format and is not “stylable”, nevertheless WebCGM follows published W3C requirements for scalable graphics format where such are applicable’
– CSS2 says:• ‘CSS can be used with any structured
document format …’
– WebCGM is a structured document format
06 May 2003 Stylable CGMXML Europe 2003, London
Approach
• Application of CSS2 to WebCGM much the way CSS1 was applied to legacy HTML
• Use of attribute selectors for specifying a style scheme to WebCGM
06 May 2003 Stylable CGMXML Europe 2003, London
Requirements
• Scope– Granularity of application
• Picture• APS
– Control of individual graphical primitives out of scope
06 May 2003 Stylable CGMXML Europe 2003, London
Requirements - color• Functions
– PictureScopeLineColor - RBG or relative scale– PictureScopeEdgeColor - RBG or relative scale– PictureScopeFillColor - RBG or relative scale– PictureScopeMarkerColor - RBG or relative scale– APSScopeLineColor - RBG or relative scale– APSScopeEdgeColor - RBG or relative scale– APSFillColor - RBG or relative scale– APSScopeMarkerColor - RBG or relative scale– PictureScopeRasterIntensity – relative scale– APSScopeRasterIntensity - relative scale
06 May 2003 Stylable CGMXML Europe 2003, London
Requirements - color
INERTIAREALS
B
A
HEADRESTSHOULDER STRAPS
QUICK RELEASEBUCKLE
ARMREST
WAIST STRAPS
LUMBAR SUPPORT
CROTCH BELT
INBD/OUTBD LEVER
TOPMIDBOTTOM
ARMRESTADJUSTMENT
UP/DOWN LEVER
SAFETYVEST
PAD
FLIGHT CREWSEAT
(BELOW THE SEAT)
A
06 May 2003 Stylable CGMXML Europe 2003, London
Requirements - color
INERTIAREALS
B
A
HEADRESTSHOULDER STRAPS
QUICK RELEASEBUCKLE
ARMREST
WAIST STRAPS
LUMBAR SUPPORT
CROTCH BELT
INBD/OUTBD LEVER
TOPMIDBOTTOM
ARMRESTADJUSTMENT
UP/DOWN LEVER
SAFETYVEST
PAD
FLIGHT CREWSEAT
(BELOW THE SEAT)
A
06 May 2003 Stylable CGMXML Europe 2003, London
Requirements – line/edge weight
• Functions– PictureScopeLineWeight – absolute mm or
relative scale– PictureScopeEdgeWeight – absolute mm or
relative scale– APSScopeLineWeight – absolute mm or
relative scale– APSScopeEdgeWeight – absolute mm or
relative scale
06 May 2003 Stylable CGMXML Europe 2003, London
Requirements – line/edge weight
INERTIAREALS
B
A
HEADRESTSHOULDER STRAPS
QUICK RELEASEBUCKLE
ARMREST
WAIST STRAPS
LUMBAR SUPPORT
CROTCH BELT
INBD/OUTBD LEVER
TOPMIDBOTTOM
ARMRESTADJUSTMENT
UP/DOWN LEVER
SAFETYVEST
PAD
FLIGHT CREWSEAT
(BELOW THE SEAT)
A
06 May 2003 Stylable CGMXML Europe 2003, London
Requirements – line/edge weight
INERTIAREALS
B
A
HEADRESTSHOULDER STRAPS
QUICK RELEASEBUCKLE
ARMREST
WAIST STRAPS
LUMBAR SUPPORT
CROTCH BELT
INBD/OUTBD LEVER
TOPMIDBOTTOM
ARMRESTADJUSTMENT
UP/DOWN LEVER
SAFETYVEST
PAD
FLIGHT CREWSEAT
(BELOW THE SEAT)
A
06 May 2003 Stylable CGMXML Europe 2003, London
Requirements – character height
• Functions– PictureScopeCharacterHeight – absolute mm or
relative scale– APSScopeCharacterHeight – absolute mm or
relative scale
06 May 2003 Stylable CGMXML Europe 2003, London
Requirements – character height
INERTIAREALS
B
A
HEADRESTSHOULDER STRAPS
QUICK RELEASEBUCKLE
ARMREST
WAIST STRAPS
LUMBAR SUPPORT
CROTCH BELT
INBD/OUTBD LEVER
TOPMIDBOTTOM
ARMRESTADJUSTMENT
UP/DOWN LEVER
SAFETYVEST
PAD
FLIGHT CREWSEAT
(BELOW THE SEAT)
A
06 May 2003 Stylable CGMXML Europe 2003, London
Requirements – character heightHEADRESTSHOULDER STRAPS
QUICK RELEASEBUCKLE
ARMREST
WAIST STRAPS
LUMBAR SUPPORT
CROTCH BELT
INBD/OUTBD LEVER
TOPMIDBOTTOM
ARMRESTADJUSTMENT
UP/DOWN LEVER
SAFETYVEST
PAD
FLIGHT CREWSEAT
(BELOW THE SEAT)
A
INERTIAREALS
B
A
06 May 2003 Stylable CGMXML Europe 2003, London
Requirements
• Caveats– Applying style using CSS2 deviates from
the actual CGM attribute model• Character height scaling does not exist• Line weight scaling behaves differently
– “Undoing” style requires special handling• Remembering attributes of various primitives,
or• Re-interpreting a picture or APS
06 May 2003 Stylable CGMXML Europe 2003, London
Issues/Resolution
• Binary/clear text– CGM is binary format– Style sheet should be ASCII text
• APSScopelinecolor grobject#xyz {color: red} – turn the lines in grobject with an apsid of xyz to red
– CGM Structured Data Record (SDR)• An issue for the WebCGM DOM when we deal
with multiple fields for attribute values of APS attributes
06 May 2003 Stylable CGMXML Europe 2003, London
Issues/Resolution
• WebCGM tree model– Pictures contain:
• APS elements (nested) contain:– Graphical primitives (leaf nodes)
– Nodes at the APS level• <layer .. > | <grobject .. > | <para .. > |
<subpara>• Simplest with a tree with four kinds of element
nodes
06 May 2003 Stylable CGMXML Europe 2003, London
Issues/Resolution
• Alignment with CSS– Possible to align element names with SVG
• CSS style sheet parsing might be reusable• But not much else
– Appropriate solution• Borrow principles from CSS, including matching
mechanisms• Customize solution for WebCGM DOM
requirements
06 May 2003 Stylable CGMXML Europe 2003, London
Issues/Resolution
• CSS selectors– Minimal selector pattern matching set
* – matches any element (universal selector)grobject – matches any grobject APS (type selector)grobject#xyz – matches any grobject APS with an apsid of
xyz
– Attribute selectorsgrobject[name] – matches any grobject APS whose “name”
attribute is setgrobject[name=“bolt”] – matches any grobject APS whose
“name” attribute is set to “bolt”
06 May 2003 Stylable CGMXML Europe 2003, London
Issues/Resolution
• WebCGM element names– For styling solution
• Elements selectors– picture layer
– grobject para
– subpara
• Attrubute selectors– Linkuri name
– screentip viewcontext
– region content
– layerdescription layername
06 May 2003 Stylable CGMXML Europe 2003, London
Issues/Resolution
• Style rules declaration– Attribute types deviate
• LineColour is a CGM attribute applying to individual line primitives
• PictureScopeLineColor would apply to all lines in a picture
– Attribute values deviate• LineColour specified in WebCGM as an index into a
color table, or an RGB n-tuple, or an sRGB n-tuple• PictureScopeLinecolor would have an RGB n-tuple, or a
relative scale
– Align with CSS data types (RBG, scale, mm)
06 May 2003 Stylable CGMXML Europe 2003, London
Issues/Resolution
• CSS inheritance model– Styling attributes should inherit
• Nested APS are affected by styling
06 May 2003 Stylable CGMXML Europe 2003, London
Issues/Resolution
• Cascading precedence– Opposite of CSS
• User agent supplied style overrides author style
• Specificity– CSS rules apply
• In clashes, most specific rules
06 May 2003 Stylable CGMXML Europe 2003, London
Issues/Resolution
• Processing model– Open questions
• How are styling rules communicated to the viewer?• Is there some sort of rule-by-rule interface?• Or, so you have to pass an entire style sheet at a time?• How do you turn off a style sheet after it has been
applied and return to author rules? (unapply rules)• How the the styling interface relate to the DOM? (DOM
will ‘get’ and ‘set’ all APSattr parameters)
06 May 2003 Stylable CGMXML Europe 2003, London
Conclusions
• Preliminary design completed• ACSII text style sheet• Align with principles from CSS• Use a subset of CSS selectors• Use CGM clear text APS types and attributes• Apply CSS inheritance model• Override CSS cascading• Apply CSS specificity
06 May 2003 Stylable CGMXML Europe 2003, London
Next Steps
• Define processing model
• WebCGM DOM– Adopt “appropriate” DOM Core elements
(level 1)– Adopt “appropriate” DOM Event elements
(levels 2 & 3)– Integrate CSS solution
06 May 2003 Stylable CGMXML Europe 2003, London
?
Recommended