Download presentation
Presentation is loading. Please wait.
Published byCharles Atkinson Modified over 9 years ago
1
ProtoVis Peter Sikachev Institute of Computer Graphics and Algorithms Vienna University of Technology
2
Peter Sikachev 1 Overview Introduction Language Design Integration into VolumeShop Plugin Discussion
3
Peter Sikachev 2 Overview Introduction Language Design Integration into VolumeShop Plugin Discussion
4
Peter Sikachev 3 Tool Selection Criterias expressiveness (“Can I build it?”) efficiency (“How long will it take?”) accessibility (“Do I know how?”)
5
Peter Sikachev 4 High-level vs Low-level API’s OpenGL, Java2D, Processing Higher-level tools Flash, Piccolo Visualization Toolkits InfoVis Toolkit, Improvis, Prefuse, Flare Consumer software Excel, Google Spreadsheets
6
Peter Sikachev 5 High-level vs Low-level API’s Only imperative methods for primitives Higher-level tools Visualization Toolkits Consumer software
7
Peter Sikachev 6 High-level vs Low-level API’s Only imperative methods for primitives Higher-level tools Still no visualization abstractions Visualization Toolkits Consumer software
8
Peter Sikachev 7 High-level vs Low-level API’s Only imperative methods for primitives Higher-level tools Still no visualization abstractions Visualization Toolkits Customized vis → software engineering Even simple tasks might be hard to implement Consumer software
9
Peter Sikachev 8 High-level vs Low-level API’s Only imperative methods for primitives Higher-level tools Still no visualization abstractions Visualization Toolkits Customized vis → software engineering Even simple tasks might be hard to implement Consumer software Limited to what is in GUI
10
Peter Sikachev 9 Overview Introduction Language Design Integration into VolumeShop Plugin Discussion
11
Peter Sikachev 10 Marks Basic grammar primitive Generated once per associated datum Mapping visual properties (position, color etc)
12
Peter Sikachev 11 Panels Mark containers Marks replication
13
Peter Sikachev 12 Other Stuff Event handlers: special properties for adding interactivity Anchors: related marks, positioned Inside/nearby (e. g., labels)
14
Peter Sikachev 13 Example
15
Peter Sikachev 14 Example
16
Peter Sikachev 15 Example
17
Peter Sikachev 16 Example
18
Peter Sikachev 17 Example
19
Peter Sikachev 18 Example
20
Peter Sikachev 19 Example
21
Peter Sikachev 20 More Examples http://vis.stanford.edu/protovis/
22
Peter Sikachev 21 Overview Introduction Language Design Integration into VolumeShop Plugin Discussion
23
Peter Sikachev 22 Motivation Rich InfoVis sample gallery Independency from data generation Cheap interactivity via JavaScript
24
Peter Sikachev 23 Challenges Integration with Qt and VolumeShop Dual way data and event transfer GUI exporting (not discussed)
25
Peter Sikachev 24 Challenges Integration with Qt and VolumeShop Dual way data and event transfer GUI exporting (not discussed)
26
Peter Sikachev 25 Porting No stable C++ port Using QWebView Rendering an html page with JavaScript, running on it
27
Peter Sikachev 26 Challenges Integration with Qt and VolumeShop Dual way data and event transfer GUI exporting (not discussed)
28
Peter Sikachev 27 Data Transfers Update data visualized by ProtoVis Get feedback from ProtoVis event handlers
29
Peter Sikachev 28 Data Transfers Update data visualized by ProtoVis Get feedback from ProtoVis event handlers
30
Peter Sikachev 29 Data Transfers
31
Peter Sikachev 30 Data Transfers Update data visualized by ProtoVis Get feedback from ProtoVis event handlers
32
Peter Sikachev 31 Data Transfers
33
Peter Sikachev 32 Data Transfers Calling ProtoVis functions Using QWebFrame::addToJavaScriptWindowObject and QWebFrame::evaluateJavaScript Calling C++ functions from ProtoVis event handlers Introduce class, inheriting QObject with functions, defined as slots
34
Peter Sikachev 33 Event Handling Other plugins might need to know about the events, fired by ProtoVis Special events are fired for the shared resource (shader)
35
Peter Sikachev 34 Overview Introduction Language Design Integration into VolumeShop Plugin Discussion
36
Peter Sikachev 35 ProtoVis vs Others a) ProtoVis b) Processing c) Flare
37
Peter Sikachev 36 Personal Experience Suited for static data and static windows Can’t use convenient in-built conversions Data is transferred as a function Not for large datasets Prefilter data Might be not an issue in Java port Very convenient interaction Tricky in debugging Can use browser Data, coming from application
38
Peter Sikachev 37 Questions?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.