VRML version of PIC

 

 

Abstract

This tool represents the analogous version of PIC, which is a language for typesetting graphics. VRML has an advantage over PIC in the sense that the former provides the unique ability to create various objects in three dimensional space. The tool serves as a language parser for identifying various objects to be specified in the input file. It provides a very easy and understandable notation for creation of VRML worlds. This language has taken the basic syntax from the PIC language, but uniquely provides much more sophisticated features to describe three-dimensional visualization of data. The primitives used in this language notation are boxes, lines, cylinders, spheres, cones, arrows, arcs, and macros. Additional facilities such as labelling the objects, coloring them, specifying their sizes and positions are also provided. the objects are made more potent by wrapping images around them, setting their transparency levels and providing anchors (URL's) to them. Connecting the objects with the help of lines, arrows, and arcs accomplishes in signifying the relation between different type of objects. The project right now is basic as well as powerful in the sense that it can serve as a prototype for creation of bigger and advanced tools for three-dimensional visualization of data.
 

Versions:

Note: We recommend that you use the latest version with bug fixes.

Return to top.


Quick Description on how to run the program

A Perl script is developed which takes as input the definition statements and then creates the objects in three dimensional space. The definition statements are written in a separate file and fed to the script, which parses it according to the new line and then throws the output to a .wrl file. The perl script is run from the command line by:


"perl version0.pl <inputfile> <outputfile>"

Return to top.


VRML worlds of this tool

Starting with the easiest of tasks, this picture is shows the VRML world that is produced by parsed5.data. This is only the start to what this tool is actually capable of doing. It takes the default attributes of the objects created such as their sizes, position, and colors. Whatever object created in the VRML world has it own viewpoint and is serially shown in order of their creation.

Going a little bit further, this world demonstrates the capablity of the tool developed to provide coloring and labelling the objects if explicitly stated as shown in parsed1.data. Notice from the data file that the first object's position has been exactly specified and then the next object created takes the previous objects position as the reference point.

Though this world does not say anything of much significance, it has been created explicitly for showing the strength of this tool. Notice from the data file, parsed.data that the size of the objects created can be changed as well as labels provided to them. In this particular case notice that the input file is case free as seen in the definition statement "line COLOR GreEN".

The newer version of the tool "version1.pl" is capable of taking user defined variables. Notice from the data file, parsed4.data that we have two user defined variables "some" and "anything". Also, there are some pre-defined variables in the program such as "boxht" (height of the box). The built in variables have default values and can be changed at any point of writing the definition statements. This causes the tool to create the objects with those "new" default variables.

"version2.pl" of the tool has the capability of adding texture images in JPG/jpg or PNG format. Also anchors (URL's) can be specified as seen in parsed6.data. The transparency of the object can be explicitly stated by giving a floating point value between 0 (opaque) and 1 (transparent).

"version3.pl" of the tool has the capability of changing the default directions. As you can see from the data file parsed7.data the user can change the directions by explicitly specifying right, left, up, down, inside, and outside

With the help of "version4.pl", the user can give labels to all the objects that he/she wants to create. This helps in connecting any face of a particular object to a specific face of the other object. As you can see from the data file, parsed8.data, lines or arrows can drawn between two labelled objects by just referring to their labels, then giving a "." operator and then specifying the faces to be connected.

"parsed8.data" is similar to "parsed7.data" except that in the former objects have been given a label and then arrows are drawn by referring to the labels.

Multiple line text labelling of objects is now possible with "version6.pl". The user can give the labels starting with the keyword text and then the labels in double qoutes. If you give a space character between a ending " and a starting " it will carry out a return function with an empty line. We suggest that you look at parsed9.data for more details.

Data Flow Diagram for Physician Visit:
This language parser describes the concept of data flow diagrams (DFD) in this picture. DFD depicts the system as a transformer of data. The emphasis is on the flow of data, and not on the flow of control. The input is an arrow going into a sphere (bubble) and the output is the arrow coming out of it. Thus, the transformation is represented by the bubble, and the arrows are the data paths (1).

Data File: parsed10.data

(1)Pfleeger S. L., Software Engineering, Macmillan Publishing Company (New York), second edition, 1991, pp 138.

Stages of Software Testing:(1)

Data File: parsed11.data

(1)Pfleeger S. L., Software Engineering, Macmillan Publishing Company (New York), second edition, 1991, pp 298.

Repeating Development Steps:(1)

Data File: parsed12.data

(1)Pfleeger S. L., Software Engineering, Macmillan Publishing Company (New York), second edition, 1991, pp 480.

The data file, parsed13.data is pretty much same as parsed9.data except for the choice of different arrows. Giving "centered" keyword to the arrow makes the line dissappear and orients the arrow/arc head to the center of the starting and ending position of the arrow/arc.

Return to top.


Resources used for this visualization


Return to top.

For more information you can contact Dr. Paul Juell or Jasmeet Bhatia, members of the research staff for World Wide Web Instructional Committee

Copyright 2000. Jasmeet Bhatia and Dr. Paul Juell