Copyright: Copyright © 1999-2003 by ParallelGraphics


Welcome
About VrmlPad

VrmlPad is a powerful and flexible authoring tool from ParallelGraphics that allows you to design and develop professional VRML content.

Use VrmlPad to create VRML worlds for publishing on the World Wide Web. VrmlPad fully supports the VRML 97 specification.

Product Features

What's New

About VRML

VrmlPad Object Model

Licensing Details

Ordering Information

Contacting the Author

Acknowledgments


Features
Product Features

 Editing – Access to local and remote files, multiple undo/redo, set bookmarks, advanced find and replace, syntax tips, smart AutoComplete, autoindent, dynamic node folding, customizable keyboard shortcuts.

 Enhanced color-coding – Customizable by VRML keywords, field and node categories.

 Dynamic errors detecting – View and enumerate syntax and wide range of semantic errors and warnings – undefined identifiers, nonmatched fields, duplicated node definitions and more.

 Document Tabs – Open and edit multiple documents. Find and replace in all opened documents. Document list includes also file dependencies of the active document.

 Scene Tree – View, edit and navigate hierarchical scene structure. Synchronize selection in both directions. Delete, comment and rename nodes, PROTOs and field declarations.

 Routing Map – View and edit scene routes. Synchronize selection in both directions. Delete, comment and add new routes using Start Route and Add Route commands.

 Resource View – View, edit and navigate document dependencies. Rename and browse all references to a resource. Convert, when possible, absolute references to relative and vice versa.

 Preview – Preview scenes in installed browsers and VRML viewers. Preview individual nodes using the Node Preview command.

 Publishing Wizard – (not shown on the figure) Organize and optimize your scene with dependencies for publishing on the Net and put the files on your Web server or send it by e-mail.

 Automation and Scripting – (not shown on the figure) Manipulate the program from external applications using the C, C++, Visual Basic®, Borland Delphi®. Create add-ins, VBScript and JavaScript macros and execute them from within the VrmlPad environment, automating custom tasks.

 VrmlScript Debugger – Locate bugs in your vrmlscript driven interactive VRML scenes using the integrated script debugger.

The debugger interface provides wrapper for the Cortona VRML client, special menus, windows, dialog boxes, and spreadsheet fields. Drag-and-drop functionality is available for moving debug information between components. Occasionally the debugger is paused in break mode, meaning the debugger is waiting for user input after completing a debugging command (like break at breakpoint, step into/over/out/to cursor, break after Break command or Restart).

 Node Thumbnails – Preview individual nodes in the scene at the right of Text editor as soon you type. Preview selected nodes in a default VRML-viewer.


New Features in VrmlPad 2.1

•	Working with workspace

Now you can save the current VrmlPad workspace, including the placement of all open files, their caret positions, bookmarks, fold settings and debug breakpoints. Choose File > Workspace > Save and specify the name for the workspace to be saved. The latest saved workspace will be opened automatically when you restart VrmlPad. To use a different workspace, choose it in the Open Workspace dialog (File > Workspace > Open), workspace files have the .vws extension.

•	Preview individual nodes

In addition to previewing a whole scene, now you can preview any individual node in it. This node (as well as its descendant nodes, if any) will be opened in a default VRML-viewer. To preview a node, position the caret inside the text of the node and choose Node Preview command from Tools menu.

•	Node thumbnails

Node thumbnails are small rendered pictures of individual nodes in the scene. These pictures appear to the right of the Text editor as soon you type in the text of the corresponding nodes.

To enable node thumbnails, choose Options from Tools menu, click Editor tab to open the corresponding page, and select Render node thumbnails.

See also:

New Features in VrmlPad 2.0


New Features in VrmlPad 2.0

Integrated Script Debugger

Now you can use debugging features that are collectively referred to as integrated script debugger. These features let you find and fix errors in the inline vrmlscript code in your VRML scenes and on HTML pages with embedded Cortona controls. The integrated script debugger is a full-featured debugger that enables you to:

•	Control the execution of your script, including pausing the execution; running to a cursor, or a breakpoint location; stepping through code.

•	Monitor the state of script data, including the current call stack; variables, arrays, and objects that are available in the current context; evaluate expressions, containing these data items.

•	Modify the values of variables, arrays, and objects in your script during a debugging session.

•	Add new procedures to your script during a debugging session as you would in code.

•	Examine and modify on the fly data items in the script using the Quick watch window.

•	Use CodeTips for quick viewing of variables values in the script.

•	Examine full VRML text of runtime nodes corresponds to value of an expression.

Fields validation macro

The macro validates conformance of field values to the VRML97 specification. Some of about 100 checks performed by the macro: verifies node fields contain correct type of node or PROTO; increasing interpolators key values, ratio of key to keyValue entries; correct relationship between coord/coordIndex, texCoord/texCoordIndex, color/colorIndex, normal/normalIndex; Color values being in range 0 to 1 and more.

Search In Files add-in

The Find in Files window enables you to perform advanced text search in multiple VRML files a time (including compressed files). Literal text strings or regular expressions to find words or characters can be used in this command.

See also:

New Features in VrmlPad 1.3


New Features in VrmlPad 1.3

•	Multiple documents

Now you can open multiple files in the same instance of VrmlPad, select between them by using the tabbed Document Bar and Ctrl+Tab hotkey, find and replace text in all opened files. Using the pull-down Document List you can browse opened files and VRML-dependencies (inlines, anchors and EXTERNPROTOs) of the active document.

•	Routing Map

The Routing Map displays routes of your scene and lets you browse and edit connections between events and exposed fields in your scene. Also you can more quickly add new routes to a scene using new Add Route dialog.

•	VRML extension node libraries

Now you can use the latest VRML extension nodes from Web3D consortium, ParallelGraphics, Blaxxun, GeoVRML, etc. VrmlPad supports semantic and publishing rules for the extension nodes and optionally insert appropriate EXTERNPROTO declarations for these nodes. The list of node libraries can be updated online. Also you can use your own custom set of extension nodes. To turn on some node extension, select appropriate checkmark from the Node libraries list in the General tab of the Options dialog box and restart VrmlPad.

•	New automation objects

Additional automation objects have been included: Documents and VrmlMatrix.  The Documents collection represents all open workspace documents. The VrmlMatrix object provides many useful methods for performing manipulations on 4x4 matrices.

•	AutoComplete feature in inline scripts

In addition to list interface fields and events of a Script node, the Complete command (Ctrl+Space) now shows subfields of SFNode and MFNode fields, if possible, and lists names of standard VRML-script objects, properties and methods.

•	Line numbering

Additional margin at the left side of Text editor displays line number for every line of a document. To turn on line numbering, select Show line numbers checkmark in the Editor tab of the Options dialog box.

•	More Unused Identifiers

Now the Unused Identifiers dialog box shows also redundant (duplicated) field definitions and duplicated routes.

•	Improved performance

VrmlPad now parses, formats and indents/unindents text faster than previous version does.

See also:

New Features in VrmlPad 1.2


New Features in VrmlPad 1.2

•	Automation and Scripting

From this version VrmlPad provides VrmlPad Object Model that enables authors and developers to manipulate the program from external applications using the C, C++, Visual Basic®, Borland Delphi®. In addition, power users can now create add-ins, VBScript and JavaScript macros and execute them from within the VrmlPad environment, automating custom tasks and adding visual support. VrmlPad macros are procedures you write in the VBScript or JavaScript language, and add-ins are in-process ActiveX components (DLLs) you write in C, C++, Delphi or Visual Basic.

•	Node Folding

Node folding lets you hide a body of huge nodes and prototype declarations. Also you can define a set of uninteresting nodes that collapses automatically on scene load.

•	Preview using multiple VRML viewers

In addition to preview a scene using default Web browser with a default VRML viewer, now you can choose a viewer from a list of installed in the system VRML viewers. To do this, from the Tools menu, choose Options and select the Preview tab. Then select Show a choice… option.

•	Keyboard shortcuts customization

On the Shortcut Keys page of the Options dialog you can assign custom shortcut key combinations to all VrmlPad commands (including macro and add-in commands).

•	Inlining resources

Now publishing wizard can include resources into VRML file body as base64 encoded data, excluding them from the list of publishing files. VRML files with in-lined resources are currently supported only by ParallelGraphics Cortona VRML viewer.

•	Inserting Anchors and External prototypes

In addition to inserting Inline nodes as a result of drag-and-drop VRML files from File List or Resource View, it’s possible now to insert also Anchor nodes and EXTERNPROTO declarations.
See also Using Drag-and-Drop in the File List.


Available Add-ins

Four optional components have been included in the VrmlPad installation pack, as examples of VrmlPad automation and scripting, Material Editor add-in, Find in Files add-in, Check Fields JScript macro and sample VBScript macros.

Material Editor

The Material Editor lets you create and edit Appearance and Material nodes. You also can choose existing materials from a pre-built library and add your own materials to it.

Find in Files

The Find in Files add-in enables you to perform advanced text search in multiple VRML files a time (including compressed files). Literal text strings or regular expressions to find words or characters can be used in this command.

 To find a text string in multiple source files

1.  From the Tools menu, choose Find in Files.
2.  In the Find what box, type the search text or a regular expression.
3.  In the In folder box, select the folder that you want to search.
4.  If necessary, select one or more of the Find options.
5.  Click the Find button to begin the search.
6.  To open a file containing a match, double-click the entry in the list below.

Fields validation macro

The Fields Validation macro checks scenes for conformance of various field values to the VRML97 specification. Among of about 100 tests performed by the macro are checks for: the field type compatibility (fields should contain nodes or PROTOs of correct type); increasing interpolators key values; ratio of key to keyValue entries; relationship between coord/coordIndex, texCoord/texCoordIndex, color/colorIndex, normal/normalIndex values; Color values being in range 0 to 1; etc.

 To validate fields

•	From the Tools menu, choose Validate Fields.

Sample macros

Sample macros include useful commands for enumerating faces in IndexedFaceSet nodes, completing selected nodes with all fields, and converting the Box, Cone and Cylinder nodes to an IndexedFaceSet etc.

Macro	Description

Complete All	Inserts all fields of the selected node with default values.

Go To Node	Prompts for a node name and selects the specified node.

Count Faces	Enumerates all faces in the scene and in the selected faceset.

WrapNodeBy…	Wraps the selected node by Group, Transform or Anchor nodes.

ConvertToFaceset	Converts selected Box, Cone or Cylinder node to IndexedFaceSet.

ScaleFacesets	Scales all facesets in the selected PROTO or the scene.

If you have not installed the macros during initial installation of VrmlPad, run the VrmlPad installation pack again, select the Sample macros checkbox and click OK.

Extrusion Editor

Extrusion Editor, a visual plug-in for VrmlPad, offers you an effective method for creating and editing existing extrusion models.

Extrusion Editor is not included in the VrmlPad installation pack. The trial version is available from the page http://www.parallelgraphics.com/products/vrmlpad/extrusioneditor/download/ .

Key Features

•	Drawing a series of connected vertices one by one

•	Drawing Bezier curves (spline curves)

•	The use of pre-defined forms (rectangle, diamond, octagon, triangle, oval, etc)

•	Move, scale, flip and rotate the spine and cross-section

•	Browse for, move, scale, and rotate the texture

•	Assemble extrusions in complex models and perform editing operations on the group of shapes

•	Manipulate extrusion parameters, edit the material, and control the smoothness of the surface

•	Immediate preview changes in the 3D window

•	Add new extrusions to the library of extrusions and insert their code into VrmlPad's text editor

•	Full VRML97-compliance

Limitations in the trial version:

•	30-day evaluation period.

•	You cannot save an extrusion (or a group of extrusions) if the number of segments in the spine is over 15.

See also:

http://www.parallelgraphics.com/products/vrmlpad/extrusioneditor/


About VRML

The Virtual Reality Modeling Language (VRML) is a file format for describing interactive 3D objects and worlds. VRML is designed to be used on the Internet, intranets, and local client systems. VRML is also intended to be a universal interchange format for integrated 3D graphics and multimedia. VRML may be used in a variety of application areas such as engineering and scientific visualization, multimedia presentations, entertainment and educational titles, web pages, and shared virtual worlds.

Design Criteria

VRML has been designed to fulfill the following requirements:

•	Authorability

Enable the development of computer programs capable of creating, editing, and maintaining VRML files, as well as automatic translation programs for converting other commonly used 3D file formats into VRML files.

•	Composability

Provide the ability to use and combine dynamic 3D objects within a VRML world and thus allow re-usability.

•	Extensibility

Provide the ability to add new object types not explicitly defined in VRML.

•	Implementability

Capable of implementation on a wide range of systems.

•	Performance

Emphasize scalable, interactive performance on a wide variety of computing platforms.

•	Scalability

Enable arbitrarily large dynamic 3D worlds.

Characteristics of VRML

VRML is capable of representing static and animated dynamic 3D and multimedia objects with hyperlinks to other media such as text, sounds, movies, and images. VRML browsers, as well as authoring tools for the creation of VRML files, are widely available for many different platforms.

VRML supports an extensibility model that allows new dynamic 3D objects to be defined and a registration process that allows application communities to develop interoperable extensions to the base standard. There are mappings between VRML objects and commonly used 3D application programmer interface (API) features.

Scope

The VRML specification defines a file format that integrates 3D graphics and multimedia. Conceptually, each VRML file is a 3D time-based space that contains graphic and aural objects that can be dynamically modified through a variety of mechanisms. VRML defines a primary set of objects and mechanisms that encourage composition, encapsulation, and extension.

The semantics of VRML describe an abstract functional behaviour of time-based, interactive 3D, multimedia worlds. VRML does not define physical devices or any other implementation-dependent concepts (e.g., screen resolution and input devices). VRML is intended for a wide variety of devices and applications, and provides wide latitude in interpretation and implementation of the functionality. For example, VRML does not assume the existence of a mouse or 2D display device.

Each VRML file:

1.	implicitly establishes a world coordinate space for all objects defined in the file, as well as all objects recursively included by the file;

2.	explicitly defines and composes a set of 3D and multimedia objects;

3.	can specify hyperlinks to other files and applications;

4.	can define object behaviors.

An important characteristic of VRML files is the ability to compose files together through inclusion and to relate files together through hyperlinking. For example, consider the file earth.wrl which specifies a world that contains a sphere representing the earth. This file may also contain references to a variety of other VRML files representing cities on the earth (e.g., file paris.wrl). The enclosing file, earth.wrl, defines the coordinate system that all the cities reside in. Each city file defines the world coordinate system that the city resides in but that becomes a local coordinate system when contained by the earth file.

Hierarchical file inclusion enables the creation of arbitrarily large, dynamic worlds. Therefore, VRML ensures that each file is completely described by the objects and files contained within it and that the effects of each file are strictly scoped by the file and the spatial limits of the objects defined in the file. Otherwise, the accumulation of files into larger worlds would produce unscalable results (as each added world produces global effects on all other worlds). For example, light sources have the potential of global effect since light energy theoretically does not dissipate to zero. And, if the earth file contains 100 city files each containing 100 lights each affecting all objects in the world, the lighting calculations would quickly become intractable. Therefore, in order to prevent global effects, light source objects are scoped by either a maximum radius or by location within the file.

Another essential characteristic of VRML is that it is intended to be used in a distributed environment such as the World Wide Web. There are various objects and mechanisms built into the language that support multiple distributed files, including:

5.	in-lining of other VRML files;

6.	hyperlinking to other files;

7.	using established Internet standards for other file formats;

8.	defining a compact syntax.

See also:

http://www.web3d.org/x3d/specifications/vrml/vrml97


Introduction to the VrmlPad Automation

The VrmlPad Automation provides application programming interface (API) that enables authors and developers to manipulate the program from external applications using the C, C++, Visual Basic®, Delphi, and scripts within HTML pages.

In addition, power users can now create add-ins, VBScript and JavaScript macros and execute them from within the VrmlPad environment, automating custom tasks. VrmlPad macros are procedures you write in the VBScript or JavaScript language, and add-ins are in-process ActiveX components (DLLs) you write in C, C++, Pascal or Visual Basic. Each add-in can add one or more commands, and each command can perform one or more tasks. The number of commands and tasks is up to you.

If your tasks are routine or repetitive, you can benefit from automating them. Through Automation (formerly OLE Automation), you can reduce the time spent on these tasks, and you can prevent errors that often result from performing the tasks manually. Also, you can add visual support for editing some VRML nodes in addition to text editing provided by VrmlPad.

With Automation, you perform tasks by manipulating VrmlPad and its components as objects. For example, you open, edit, and close a document by manipulating it as an object. Similarly, you get or edit a VRML node's properties by manipulating it as an object. Each VrmlPad object implements a dual interface through which you can manipulate the object.

You manipulate objects by using methods, properties, and events associated with the objects. Methods represent actions you take against the objects. Properties represent characteristics of the objects, such as their type or size. And, events represent conditions under which actions are taken against the objects.

Suppose you want to create a VRML file, containing WorldInfo node, quickly — by simply choosing a menu item. Start by writing a VBScript macro that will create the file. The macro looks like this:

Sub Create_New
Set doc = Window.Documents.Open
doc.Selection = "#Created by the Author" + vbCrLf
Set node = doc.RootNodes.Add("WorldInfo")
node.Fields("info").Add "Powered by VrmlPad"
doc.Saved = True
End Sub

This macro does the following:

•	The Sub statement begins the macro, which has the name Create_New. The name is arbitrary, you can use whatever name you choose.

•	The first line of the macro creates a new empty document, using the Open method of the Documents object.

•	The second line of the macro adds a comment string and moves the caret to the next line, using the Selection property of the Document object.

•	The next line of the macro adds an empty WorldInfo node, using the RootNodes collection of the Document object.

•	The next line of the macro adds the info field to the node, using the Fields collection of the Node object, and sets field's value, using the Add method of the Field object.

•	The last line of the macro marks the document as unmodified.

•	The End Sub statement ends the macro.

After writing the macro, copy the macro file to the AddIns directory. Then, select the menu item Create New from the Tools menu to run the macro.

For more information about VrmlPad objects and writing add-ins and macros, see
http://www.parallelgraphics.com/developer/products/vrmlpad/.


Licensing Details

This licence applies to the registered version of VrmlPad v. 2.1.

If you are using a trial version of VrmlPad v. 2.1, see the section titled "Evaluation Licence" below.

PARALLELGRAPHICS LIMITED

END-USER LICENCE AGREEMENT

IMPORTANT – READ CAREFULLY: This ParallelGraphics End-User Licence Agreement (the "Agreement") is a legal agreement between you (either an individual or a single entity) and ParallelGraphics Limited for the ParallelGraphics software product VrmlPad  v. 2.1 (the "Software").  By installing, copying or otherwise using the Software, you agree to be bound by the terms and conditions of this Agreement. If you do not agree to the terms and conditions of this Agreement, do not install, copy or otherwise use the Software, you may however return the Software to your place of purchase for a full refund.

1.	Agreement

1.1  ParallelGraphics Limited ("ParallelGraphics") hereby grants you the following rights for your own purposes only, and not those of any third party:

(a)	You may install and use one copy of the Software on a single computer (into RAM and/or onto computer hard drive);

(b)	You may access the Software and query, display and manipulate the data contained therein;

(c)	You may make a single copy of the Software for back-up purposes.

1.2  The Software and any associated documentation (the "Documentation") contain confidential information of ParallelGraphics and all copyright, trademarks and all other intellectual property rights in and to the Software and Documentation are and shall remain the sole and exclusive property of ParallelGraphics. Nothing in this Agreement shall confer any rights in any tradename, business name or trademark of ParallelGraphics on you. The provisions of this Clause 1.2 shall continue to operate after the termination of this Agreement.

1.3  Save as otherwise expressly set out herein and as otherwise expressly permitted by law, you shall not:

(a)	Make any temporary or permanent reproduction by any means and in any form, in whole or in part, of the Software or the Documentation;

(b)	Make any translation, adaptation, arrangement or any other alteration of the Software or the Documentation;

(c)	Make any form of distribution to the public of the Software or the Documentation, in whole or in part, or of copies thereof;

(d)	Make any communication, display or performance to the public of the Software or the Documentation;

(e)	Disseminate, sell, give away, hire, lease, offer or expose for sale or distribute the Software, or another product wholly or partially derived from any of the foregoing;

(f)	Assign, transfer, sell, lease, rent, charge or otherwise deal in or encumber the Software or the Documentation or  use the Software or the Documentation on behalf of any third party, or make available the same to any third party without the prior written consent of ParallelGraphics;

(g)	Copy, adapt or reverse compile the whole or any part of the Software or the Documentation;

(h)	Remove or alter any copyright or other proprietary notice from the Software or the Documentation.

1.4  ParallelGraphics will not be bound by any term, condition or other provision proffered by you which is different from or in addition to the provisions of this Agreement unless ParallelGraphics agrees to such provisions in writing.

1.5  This Agreement supersedes any and all prior agreements, statements and representations between ParallelGraphics and you.

1.6  No amendment, modification or waiver of any of the provisions of this Agreement shall be valid unless set out in writing and signed by each party.

1.7  If any provision of this Agreement shall be found by any court or administrative body of any competent jurisdiction to be invalid or unenforceable, the invalidity or unenforceability of such provision shall not affect the other provisions of this Agreement and all provisions not affected by such invalidity or unenforceability shall remain in full force and effect.

1.8  You shall not be entitled to assign or otherwise transfer this Agreement nor any of its rights or obligations hereunder, without the prior written consent of ParallelGraphics.

2.	Term and Termination

2.1  ParallelGraphics may terminate this Agreement if you breach any of the terms of this Agreement and fail to remedy such a breach within fifteen (15) days of receipt of written notice from ParallelGraphics. Upon such termination you shall destroy the Software, and the Documentation and any back-up or archival copy of the Software and you shall provide written certification of such destruction to ParallelGraphics.

2.2  You may terminate this Agreement at any time by destroying the Software, the Documentation and any back-up or archival copy of the Software and notifying ParallelGraphics in writing of such destruction.

2.3  All provisions of this Agreement which in order to give effect to their meaning need to survive its termination shall remain in full force and effect thereafter.

3.	Warranties

3.1  ParallelGraphics warrants that its title to and property in the Software and the Documentation is free and unencumbered and that it has the right, power and authority to licence the same upon the terms and conditions of this Agreement.

4.	Consequential Damages

4.1  In no event shall ParallelGraphics be liable for any indirect, incidental, special or consequential damages (including without limitation any loss of data or business interruption) arising out of the performance or failure of the Software even if such damages were reasonably foreseeable or ParallelGraphics had been advised of the possibility of such damages.

5.	Liability

5.1  ParallelGraphics does not warrant that the Software and/or the Documentation will meet your requirements or that the operation of the Software will be uninterrupted or error free.

5.2  Except as expressly provided herein, all conditions and warranties (express or implied, statutory or otherwise) are excluded by ParallelGraphics, including without limitation any warranties implied by the Sale of Goods Act 1893 as amended by the Sale of Goods and Supply of Services Act 1980 or by Section 39 of the said 1980 Act.

6.	Governing Law

6.1  This Agreement will be governed and construed in accordance with the laws of the Ireland.

*** EVALUATION LICENCE ***

The following licence applies to the trial version of VrmlPad v. 2.1

If you have purchased a licence for the registered version of VrmlPad v. 2.1, see the section "Licence Agreement" above.

PARALLELGRAPHICS LIMITED

END-USER EVALUATION LICENCE AGREEMENT

IMPORTANT – READ CAREFULLY: This ParallelGraphics End-User Evaluation Licence Agreement (the "Agreement") is a legal agreement between you (either an individual or a single entity) and ParallelGraphics Limited for the ParallelGraphics software product VrmlPad v. 2.1 (the "Software").  By installing, copying or otherwise using the Software, you agree to be bound by the terms and conditions of this Agreement. If you do not agree to the terms and conditions of this Agreement, do not install, copy or otherwise use the Software.

1.	Agreement

1.1 ParallelGraphics Limited ("ParallelGraphics") hereby grants you the following rights for the purposes of evaluating the Software for your own purposes only, and not those of any third party and only for a period of thirty (30) days from the date you first install, copy or use the Software:

(a)	You may install and use one copy of the Software on a single computer (into RAM and/or onto computer hard drive);

(b)	You may access the Software and query, display and manipulate the data contained therein;

(c)	You may make a single copy of the Software for back-up purposes.

1.2  The Software and any associated documentation (the "Documentation") contain confidential information of ParallelGraphics and all copyright, trademarks and all other intellectual property rights in and to the Software and Documentation are and shall remain the sole and exclusive property of ParallelGraphics. Nothing in this Agreement shall confer any rights in any tradename, business name or trademark of ParallelGraphics on you. The provisions of this Clause 1.2 shall continue to operate after the termination of this Agreement.

1.3  Save as otherwise expressly set out herein and as otherwise expressly permitted by law, you shall not:

(a)	Make any temporary or permanent reproduction by any means and in any form, in whole or in part, of the Software or the Documentation;

(b)	Make any translation, adaptation, arrangement or any other alteration of the Software or the Documentation;

(c)	Make any form of distribution to the public of the Software or the Documentation, in whole or in part, or of copies thereof;

(d)	Make any communication, display or performance to the public of the Software or the Documentation;

(e)	Disseminate, sell, give away, hire, lease, offer or expose for sale or distribute the Software, or another product wholly or partially derived from any of the foregoing;

(f)	Assign, transfer, sell, lease, rent, charge or otherwise deal in or encumber the Software or the Documentation or  use the Software or the Documentation on behalf of any third party, or make available the same to any third party without the prior written consent of ParallelGraphics;

(g)	Copy, adapt or reverse compile the whole or any part of the Software or the Documentation;

(h)	Remove or alter any copyright or other proprietary notice from the Software or the Documentation.

1.4  ParallelGraphics will not be bound by any term, condition or other provision proffered by you which is different from or in addition to the provisions of this Agreement unless ParallelGraphics agrees to such provisions in writing.

1.5  This Agreement supersedes any and all prior agreements, statements and representations between ParallelGraphics and you.

1.6  No amendment, modification or waiver of any of the provisions of this Agreement shall be valid unless set out in writing and signed by each party.

1.7  If any provision of this Agreement shall be found by any court or administrative body of any competent jurisdiction to be invalid or unenforceable, the invalidity or unenforceability of such provision shall not affect the other provisions of this Agreement and all provisions not affected by such invalidity or unenforceability shall remain in full force and effect.

1.8  You shall not be entitled to assign or otherwise transfer this Agreement nor any of its rights or obligations hereunder, without the prior written consent of ParallelGraphics.

2.	Term and Termination

2.1  ParallelGraphics may terminate this Agreement if you breach any of the terms of this Agreement and fail to remedy such a breach within fifteen (15) days of receipt of written notice from ParallelGraphics. Upon such termination you shall destroy the Software, and the Documentation and any back-up or archival copy of the Software and you shall provide written certification of such destruction to ParallelGraphics.

2.2  You may terminate this Agreement at any time by destroying the Software, the Documentation and any back-up or archival copy of the Software and notifying ParallelGraphics in writing of such destruction.

2.3  All provisions of this Agreement which in order to give effect to their meaning need to survive its termination shall remain in full force and effect thereafter.

3.	Warranties

3.1  ParallelGraphics warrants that its title to and property in the Software and the Documentation is free and unencumbered and that it has the right, power and authority to licence the same upon the terms and conditions of this Agreement.

4.	Consequential Damages

4.1  In no event shall ParallelGraphics be liable for any indirect, incidental, special or consequential damages (including without limitation any loss of data or business interruption) arising out of the performance or failure of the Software even if such damages were reasonably foreseeable or ParallelGraphics had been advised of the possibility of such damages.

5.	Liability

5.1  ParallelGraphics does not warrant that the Software and/or the Documentation will meet your requirements or that the operation of the Software will be uninterrupted or error free.

5.2  Except as expressly provided herein, all conditions and warranties (express or implied, statutory or otherwise) are excluded by ParallelGraphics, including without limitation any warranties implied by the Sale of Goods Act 1893 as amended by the Sale of Goods and Supply of Services Act 1980 or by Section 39 of the said 1980 Act.

6.	Governing Law

6.1  This Agreement will be governed and construed in accordance with the laws of the Ireland.

E-mail: support@parallelgraphics.com

WWW: http://www.parallelgraphics.com/products/vrmlpad


Ordering Information

The trial version of VrmlPad has the following limitations:

•	You cannot save files over 64K in size.

•	You cannot copy or cut selections over 32K in size to the clipboard.

•	Debugging session is limited by 2 minutes.

You are free to evaluate VrmlPad for a period of 30 days before you are required to purchase the program. Once you register VrmlPad you will receive a serial number that you can use to expand your copy of VrmlPad to the full version. Other benefits of registering VrmlPad include notification of all VrmlPad releases and updates, top priority for all your comments and suggestions, and the opportunity to beta test future VrmlPad releases.

You can order VrmlPad 2.1 online from Regnow.com or directly from ParallelGraphics and its local distributors.

Pricing:

Regular price:	149.95 USD

Academic price:	74.95 USD

You can find more information about ordering VrmlPad at the ParallelGraphics Web site:

http://www.parallelgraphics.com/products/vrmlpad/order/

If you have any questions, please contact us at sales@parallelgraphics.com.


Contacting the Author

The easiest way to contact me is to send email to:

ild@parallelgraphics.com

Please include "VrmlPad" and the version number as the subject. I will respond to your email as soon as I can. I welcome any questions, comments and/or suggestions.

Also, you can get the latest VrmlPad information at the following URL:

http://www.parallelgraphics.com/products/vrmlpad/

Thank you for giving VrmlPad a try.

- Ildar Khairoutdinov


Acknowledgments

•	The VrmlPad packing feature was made possible through the use of 'zlib' general purpose compression library (Copyright (C) 1995-1996 Jean-loup Gailly and Mark Adler).

•	Thanks to the testers and VRML authors from the ParallelGraphics company who help track down problems before VrmlPad is publicly released.

•	Finally, thanks to all users who supported the development of this software by registering and recommending it to their friends and colleagues.


Overview: Text Editor

The VrmlPad environment includes an integrated text editor to manage, edit, and print source files. Most of the procedures for using the editor should seem familiar if you have used other Windows-based text editors. With the Text editor, you can:

•	Set and customize syntax coloring for source VRML files.

•	Use AutoComplete for quick entering a VRML keyword, node type, node name, field name, default field value or another syntax element.

•	Perform advanced find and replace operations in a file, including using regular expressions.

•	Use virtual spaces for advanced cursor positioning.

•	Navigate through sections of code using the Go To dialog box.

•	Use Bookmarks to mark frequently accessed lines in your source file.

•	Customize the Text editor with save preferences, tabs, and indents.

•	Modify the font style, size, and color.

•	Select lines or multiple lines, copy and cut selection into clipboard.

•	Split the Text editor window into two panes.

•	Hide a body of huge or uninteresting nodes and prototype declarations.

•	Use drag-and-drop editing within editor window, and between the Text editor and other applications.

Tip  While using the Text editor, in many instances you can click the right mouse button to display a shortcut menu of frequently used commands. The commands available depend on what the mouse pointer is pointing to.

What do you want to know more about?

Syntax Coloring

AutoComplete

Error Processing

Node Folding

Node Thumbnails

Finding Text

File Navigation

Working with Workspace

Using Drag-and-Drop Editing

Editor Commands and Keystrokes


Syntax Coloring

Syntax coloring uses different colors for various code elements, such as keywords, comments, strings, URLs, nodes, fields and field values. This coloring gives you visual cues about the structure and state of your code.

 To change colors used for syntax coloring

1.	From the Tools menu, choose Options.

2.	Select the Format tab.

3.	In the Font box, select the font you want.

4.	The Font box displays the different fixed-pitch fonts installed on your system. The text sample in the Sample box changes to the font you select.

5.	In the Size box, select the size to be used with the font you selected.

The Size box displays the sizes available for the selected font. The text sample in the Sample box changes to the size you select.

6.	In the Colors box, select the type of text you want to color.

7.	In the Background box, select a background color.

8.	In the Foreground box, select a foreground color.

The Background and Foreground boxes display the standard colors, the Custom setting and the Automatic setting. The text sample displayed in the Sample box changes to the color you select.
The behavior of the Automatic setting depends on the element selected. For colors that map to standard system elements (such as Text or Selected Text), the Automatic setting sets the element to the appropriate system color. For syntax coloring elements and other non-system defined colors, the Automatic setting indicates that the foreground color or background color from the parent category is to be used.

9.	Click OK.

 To disable syntax coloring

1.	From the Tools menu, choose Options.

2.	Select the Editor tab.

3.	In the Options box, unselect Highlight language syntax checkmark.

4.	Click OK.


AutoComplete

The Complete command (Ctrl+Space) opens a dropdown list box in the Text editor that contains the VRML identifiers (keywords, PROTO, node and field names, fields types) appropriate to the grammatical context at the current caret position. To have the list box automatically open as you type your code, select Auto list identifiers on the Editor tab in the Options dialog box.

You can find the identifier you want in the list box by:

•	Typing the name.

As you type, the identifier that matches the characters you type is selected and moves to the top of the list.

•	Using the up and down arrow keys to move up and down in the list.

•	Scrolling through the list and selecting the identifier you want.

You can insert the identifier into your code by:

•	Clicking the identifier.

•	Selecting the identifier and pressing SPACE or ENTER to insert the selection.

You can also type Ctrl+Space after a node or PROTO identifier. The command adds braces after identifier, inserts empty line and sets there the caret.

After a field declaration or definition the command inserts default field value.


Error Processing

As you type, VrmlPad can automatically check your document and underline syntax and semantic errors or possible warnings. There are three types of errors indicated on the status bar at the bottom of the VrmlPad window:

•	Syntax errors.

Wrong construction underlines by red wavy line and indicates on the status bar by a red pane labeled SYN.

•	Semantic errors and warnings. Missing, duplicated or type-mismatched identifiers.

Identifier underlines by red dash line and indicates on the status bar by a blue pane labeled SEM.

•	Nonmatching braces, square brackets and double quotes.

Status bar indicates this error by a green pane labeled NBR.

 To get explanation for an error:

•	Rest the mouse pointer over the wrong construction for a moment and read a ScreenTip for the error.

•	Double-click the highlighted pane on the status bar. The caret will move to the first error of that type.

To quickly move to the next error, choose Next Error from the View menu, or type F4 (to go to the previous error, type Shift+F4).


Node Folding

Node folding lets you hide a body of huge or uninteresting nodes and prototype declarations. The lines of code inside these nodes can be expanded or collapsed using a [+]/[-] icon on the selection margin at the left side of Text editor.

 To expand or collapse a node fold

•	Click the + icon to expand the fold or – icon to collapse.

•	Or set the caret at the folded lines and from the Edit / Fold submenu, choose Expand or Collapse or press Alt+Down Arrow or Alt+Up Arrow.

•	Or right-click the fold sign and from the pull-down menu choose Toggle.

 To expand or collapse all node folds

•	From the Edit / Fold submenu, choose Expand All or Collapse All.

•	Or right-click any fold sign and from the pull-down menu choose Expand All or Collapse All.

By default, a number of lines that can be folded should be at least 20 lines.

 To change the minimum number of lines to fold

1.	From the Tools menu, choose Options.

2.	Select the Node Folds tab.

3.	In the Minimum length of node to fold box, type the number of lines.

Tip  Type 0 lines to fold all nodes and prototype declarations.

4.	Click OK.

You can define a set of node types that should be hidden normally. All nodes of such uninteresting types can be collapsed manually or automatically (on scene load or text insertion).

 To define a set of uninteresting nodes

1.	From the Tools menu, choose Options.

2.	Select the Node Folds tab.

3.	Using Add >> and << Remove buttons, modify a list of nodes in the Uninteresting nodes box.

4.	To automatic collapse uninteresting nodes, select Automatically collapse uninteresting nodes on load and inserts checkbox.

 To disable node folding

1.	From the Tools menu, choose Options.

2.	Select the Editor tab.

3.	In the Options box, unselect Allow node folding checkmark.

4.	Click OK.


Node Thumbnails

Node thumbnails allow you to immediately preview of individual VRML nodes as you type. A node thumbnail is a small rendered picture on the special margin at the right side of Text editor.

You can change a node thumbnail’s orientation by dragging the rendered picture. To set the caret position in Text editor at the node, click the thumbnail picture. To preview the node in a default external VRML-viewer, double-click the picture.

 To enable node thumbnails

1.	From the Tools menu, choose Options.

2.	Select the Editor tab.

3.	In the Options box, select Render node thumbnails checkmark.

4.	Click OK.

Note  To render node thumbnails the Cortona VRML client should be installed
(http://www.parallelgraphics.com/products/cortona).

 To change the size of node thumbnails

1.	Right-click any thumbnail picture and from the pull-down menu choose 48 x 48, 64 x 64 or 80 x 80.

2.	Or from the Tools menu, choose Options, select the Thumbnail tab, in the Size and color box select or enter desired size and click OK.

 To show a node thumbnail in wireframe mode

1.	Right-click any thumbnail picture and from the pull-down menu choose Wireframe.

2.	To show all node thumbnails in wireframe mode, from the Tools menu, choose Options, select the Thumbnail tab, in the Rendered options box select Wireframe mode checkmark and click OK.

 To show node thumbnails for texture, background and material nodes

1.	From the Tools menu, choose Options.

2.	Select the Thumbnail tab.

3.	In the Thumbnail nodes box, select Textures and/or Materials checkmarks.

4.	Click OK.

 To show thumbnails for script-generated nodes

1.	From the Tools menu, choose Options.

2.	Select the Thumbnail tab.

3.	In the Restrictions box, unselect Disable scripts running checkmark.

4.	Click OK.

 To preview an individual node in an external browser

•	Double-click the node thumbnail’s picture.

•	Or right-click the thumbnail’s picture and from the pull-down menu choose Preview <node>.

•	Or right-click the node text in Text editor and from the pull-down menu choose Preview <node>.

•	Or move the insertion point to the node text and type Node Preview (F7) button.


Finding Text

With the advanced find and replace capabilities of the Text editor, you can search for literal text strings or use regular expressions to find words or characters. A regular expression is a search string that uses special characters to match a text pattern in a file. You can use regular expressions, including tagged regular expressions, with both the Find and Replace commands.

With the Find and Replace commands, you can:

•	Find text in a single document.

•	Find text in multiple documents.

•	Replace text in a part of a document.

•	Replace text in a whole document.

•	Replace text in multiple documents.

•	Use regular expressions.

 To find a text string

1.	Move the insertion point to where you want to begin your search.

The editor uses the location of the insertion point to select a default search string.

2.	From the Edit menu, choose Find or type Ctrl+F.

3.	In the Find what box, type the search text or a regular expression.

Tip  Select the menu button to the right of the box to display a list of regular search expressions. When you select an expression from this list, the expression is substituted as the search text in the Find what box. If you do use regular expressions, be sure the Regular expression check box is selected. You can also use the drop-down list to select from a list of up to 16 previous search strings.

4.	Select any of the Find options.

5.	Start the search by clicking the Find Next or Mark All buttons.

 To start a find without using the Find dialog box

•	Type Ctrl+F3 to search a word under the caret position.

•	To continue your search, type the Find Next (F3) or Find Previous (Shift+F3) buttons.

 To replace text

1.	Move the insertion point to where you want to begin your search.

2.	The editor uses the location of the insertion point to select a default search string.

3.	From the Edit menu, choose Replace.

4.	In the Find what text box, type the search text or a regular expression.

Tip  Click the button to the right of the box to display a list of regular search expressions. When you select an expression from this list, the expression is substituted as the search text in the Find what text box. If you do use regular expressions, be sure the Regular expression check box is selected. You can also use the drop-down list to select from up to 16 previous search strings.

5.	In the Replace with text box, type the replacement text.

Tip  Click the button to the right of the box to display a list of tagged expressions you can use as replacement text.

6.	Select any of the remaining Find options.

7.	Start the search by clicking the Find Next, Replace, or Replace All buttons

What do you want to know more about?

Regular Expressions


Regular Expressions

Regular Expression	Description

.(Period.)	Any single character

[ ]	Any one of the characters contained in the brackets, or any of an ASCII range of characters separated by a hyphen (-). For example, b[aeiou]d matches bad, bed, bid, bod, and bud, and r[eo]+d matches red, rod, reed, and rood, but not reod or roed. x[0-9] matches x0, x1, x2, and so on. If the first character in the brackets is a caret (^), then the regular expression matches any characters except those in the brackets.

^	The beginning of a line.

$	The end of a line.

( )	Indicates a tagged expression to retain for replacement purposes. If the expression in the Find what text box is (PROTO )OldName, and the expression in the Replace With box is \1NewName, all selected occurrences of PROTO OldName are replaced with PROTO NewName. Each occurrence of a tagged expression is numbered according to its order in the Find what text box, and its replacement expression is \n, where 1 corresponds to the first tagged expression, 2 to the second, and so on. You can have up to nine tagged expressions.

c|c	Any one of the characters separated by the alternation symbol (|). For example, (j|u)+fruit finds jfruit, jjfruit, ufruit, ujfruit, uufruit, and so on.

*	None or more of the preceding characters or expressions. For example, ba*c matches bc, bac, baac, baaac, and so on.

+	At least one or more of the preceding characters or expressions. For example, ba+c matches bac, baac, baaac, but not bc.

?	None or one of the preceding characters or expressions. For example, ba?c matches bc, and bac.

( )	Any sequence of characters between the escaped braces. For example, (ju)+fruit finds jufruit, jujufruit, jujujufruit, and so on. Note that it will not find jfruit, ufruit, or ujfruit, because the sequence ju is not in any of those strings.

[^]	Any character except those following the caret (^) character in the brackets, or any of an ASCII range of characters separated by a hyphen (-). For example, x[^0-9] matches xa, xb, xc, and so on, but not x0, x1, x2, and so on.

\a	Any single alphanumeric character [a – zA – Z0 – 9].

\w+	Any white-space characters. The \w+ finds tabs and spaces.

\c	Any single alphabetic character [a – zA – Z].

\d	Any decimal digit [0 – 9].

\v	Any VRML identifier.

\s	Any quoted string ("[^"]*").

\	Removes the pattern match characteristic in the Find what text box from the special characters listed above. For example, 100$ matches 100 at the end of a line, but 100\$ matches the character string 100$ anywhere on a line.


File Navigation

The Text editor provides a variety of methods to move around in a source file. In addition to the standard Windows navigation mechanisms, the Text editor includes an assortment of commands that enable you to move to almost any location in a file. Further, in addition to comprehensive GoTo and Bookmarks commands, the Text editor includes several advanced navigation features, such as virtual space.

About Virtual Space

All editors support moving the cursor by one character position. The most common difference among text editors is whether you can move the cursor into a location that does not currently contain text. For example, if your cursor is on column 20 and there is no text on the line below the current line, moving the cursor down can do one of two things: Either the cursor moves to column 1 — because there is no text on the line below — or the cursor moves to column 20 of the next line. This behavior is called virtual space.

With the Text editor, you can treat text selection and space insertion in two ways. When you select the Virtual Spaces option, spaces are inserted between the end of the line and the insertion point before new characters are added to the line. When you clear the Virtual Spaces option, the Text editor behaves like Microsoft Word for Windows — the insertion point is set to the end of the line.

 To enable virtual space

1.	From the Tools menu, choose Options.

2.	Select the Editor tab.

3.	In the Options box, select Enable virtual space checkmark.

4.	Click OK.

About Go To

The Go To dialog box allows you to jump quickly to several different items in a file, including:

•	Lines (type the line number)

•	Lines in inline scripts (type the line number from the beginning of the script and scripts node name)

•	PROTO, node and field declarations (type or select the name of a PROTO, node, or field to go to where it is defined)

•	PROTO, node and field references (type or select the name of a PROTO, node, or field to go to where it is referenced)

•	ROUTEs (type or select the known node and field names to go to where it is routed)

 To use the Go To dialog box

1.	From the Edit menu, choose Go To.

2.	In the Go To what box, select the type of item you want.

3.	Enter any additional information required.

4.	Click one of the navigation buttons: Go To, Previous, or Next.

Tip  To quickly jump to definition of an identifier (PROTO, node, or field name) under the caret position, type Ctrl+F11. To jump to an identifier reference, type F11.

About Bookmarks

You can set bookmarks to mark frequently accessed lines in your source file. Once a bookmark is set (Ctrl+F2), you can use menu or keyboard commands (F2 and Shift+F2) to move to it. You can remove a bookmark when you no longer need it (Ctrl+F2 again).


Working with Workspace

As the name implies, the workspace is the area of the main window where you create and edit VRML files. When you open a file, a text window opens in the workspace. You can either create a new workspace or work with an existing one.

Choose File > Workspace > Save to save your current workspace arrangement. When you save a workspace, VrmlPad saves information on the placement of all open files and their caret positions, bookmarks, fold settings and debug breakpoints. The saved file has a .vws extension.

 To save the current workspace

1.	Choose File > Workspace > Save.

2.	In the Save Workspace dialog box, navigate to the folder in which you want to save the workspace.

3.	In the File name text box, type a name for the workspace. VrmlPad adds the .vws extension.

4.	Click the Save button. VrmlPad saves the workspace information.

If your workspace contains any newly created files that you have not yet saved, VrmlPad will open the Save As dialog box, where you can assign a name and location for saving the new files. If you press Cancel, the files are not saved as part of the workspace. If the workspace contains any files that have been modified, VrmlPad saves them before saving the workspace information.

Use File > Workspace > Load to load a previously saved workspace. A saved workspace contains information about its files, bookmark and fold settings, and debug breakpoints.

Note that the filename and location, rather than the actual file, is saved. If you move or delete a file that is contained in a saved workspace, this file will be missing when you next load the workspace.

 To load a workspace

1.	Choose File > Workspace > Open.

2.	In the Open Workspace dialog box, navigate to and select the filename of the workspace you want to load. Workspace files have a .vws extension.

3.	Click the Open button. VrmlPad restores the files and program settings of the selected workspace.

If you have used a workspace recently, you can load it by choosing it from the list of recent workspaces, which is located in the File > Workspace menu. Last recent workspace is opened automatically on VrmlPad starts. To prevent it, choose File > Workspace > Close.


Using Drag-and-Drop Editing

Drag-and-drop editing is the easiest way to move or copy a selection of text within a file, between files, or between applications. The text you drop remains selected, which makes it easy to copy a chunk of text into several places.

 To move text using drag-and-drop editing

1.	Select the text you want to move.

2.	Drag the selected text to the new location.

Note  You can also use the right mouse button for drag-and-drop editing. Select the text you want, and then use the right mouse button to drag the text to a new location. A shortcut menu appears, asking if you want to move or copy the selected text.

Tip  At any time during a drag-and-drop procedure, you can click the other mouse button to cancel the operation.

 To copy text using drag-and-drop editing

1.	Select the text you want to copy.

2.	While holding down the CTRL key, drag the selected text to the new location.

 To move or copy text to another document

1.	Select the text you want to move or copy.

2.	Drag the selected text to the document bar and hold it over the document tab.

3.	After the target document selected drag the text to the new location.


Editor Commands and Keystrokes

You can access Text editor commands in many ways: from the menus, from the toolbar, and from the shortcut menu. There are many Text editor commands, but not all of them appear on the menus and toolbars. The Selection menu (available from the Edit menu) contains some of the most useful edit commands, including Format, Indent, Unindent, Tabify, Untabify, Make Uppercase, Make Lowercase, and Comment.

Use these key combinations in the Text editor window:

Press	To

F1	Get context-sensitive Help on node type under the caret position.

F2	Moves to the line containing the next bookmark.

Shift+F2	Moves to the line containing the previous bookmark.

Ctrl+F2	Toggles a bookmark for the current line on and off.

F3	Finds the next occurrence of the specified text.

Shift+F3	Finds the previous occurrence of the specified text.

Ctrl+F3	Finds the next occurrence of the selected text.

Ctrl+Shift+F3	Finds the previous occurrence of the selected text.

Alt+F3	Finds the specified text.

F4	Moves to the line containing the next error or warning.

Shift+F4	Moves to the line containing the previous error or warning.

Ctrl+F4	Closes the active document.

F5	Preview the document, using default Web browser and VRML viewer.

F7	Preview a node at the caret position, using default Web browser and VRML viewer.

F11	Displays an identifier definition.

Shift+F11	Displays an identifier reference.

Ctrl+A	Selects the entire document.

Ctrl+C	Copies the selection to the Clipboard.

Ctrl+Shift+C	Comment or uncomment the selected lines.

Ctrl+E	Marks a node or a field at the caret position as a route source.

Ctrl+F	Activates the Find tool.

Ctrl+Shift+F	Formats the selection using the smart indent settings.

Ctrl+G	Moves to a specified location.

Ctrl+L	Deletes the selected lines and puts them on the Clipboard.

Ctrl+R	Marks a node or a field at the caret position as a route target and opens Add Route dialog box.

Alt+S	Synchronize the caret position with a selection in the Scene Tree.

Ctrl+Shift+T	Replaces spaces with tabs in the selection.

Ctrl+Alt+T	Shows or hides tab characters.

Ctrl+U	Makes the selection all lowercase

Ctrl+Shift+U	Makes the selection all uppercase.

Ctrl+V	Inserts the Clipboard contents at the insertion point.

Ctrl+X	Cuts the selection and moves it to the Clipboard.

Ctrl+Y	Redoes the previously undone action.

Ctrl+Z	Undoes the last action.

Ctrl+]	Finds the matching brace.

Ctrl+Shift+]	Extends the selection to the matching brace.

Ctrl+Space	Opens a dropdown list box that contains the available identifiers.

Ctrl+Shift+Space	Replaces tabs with spaces in the selection.

Tab	Indents the selection.

Shift+Tab	Unindents the selection.

Ctrl+Tab	Activates next document.

Ctrl+Shift+Tab	Activates previous document.

Backspace	Deletes the selection or, if there is no selection, the character to the left of the cursor.

Ctrl+Backspace	Deletes a word to the left.

Del	Deletes the selection.

Ctrl+Del	Deletes a word to the right.

Left Arrow	Moves the cursor one character to the left.

Shift+Left Arrow	Extends the selection one character to the left.

Ctrl+Left Arrow	Moves back one word.

Ctrl+Shift+Left Arrow	Extends the selection back one word.

Right Arrow	Moves the cursor one character to the right.

Shift+Right Arrow	Extends the selection one character to the right.

Ctrl+Right Arrow	Moves forward one word.

Ctrl+Shift+Right Arrow	Extends the selection forward one word.

Up Arrow	Moves the cursor up one line.

Shift+Up Arrow	Extends the selection up one line.

Ctrl+Up Arrow	Scrolls the file contents down one line.

Alt+Up Arrow	Collapse the node fold at the cursor

Down Arrow	Moves the cursor down one line.

Shift+Down Arrow	Extends the selection down one line.

Ctrl+Down Arrow	Scrolls the file contents up one line.

Alt+Down Arrow	Expand the node fold at the cursor

Home	Moves to either the start of the current line or the start of the text on that line.

Shift+Home	Extends the selection to either the start of the current line or the start of the text on that line.

Ctrl+Home	Moves to the beginning of the file.

Ctrl+Shift+Home	Extends the selection to the beginning of the file.

End	Moves to the end of the current line.

Shift+End	Extends the selection to the end of the current line.

Ctrl+End	Moves to the end of the document.

Ctrl+Shift+End	Extends the selection to the end of the document.

Page Down	Moves the cursor down one page.

Page Up	Moves the cursor up one page.

Shift+Page Down	Extends the selection down one page.

Shift+Page Up	Extends the selection up one page.

Ins	Toggles between inserting and replacing text.


Overview: Scene Tree

The Scene Tree displays VRML hierarchy of your scene and lets you:

•	Browse and edit the VRML hierarchy of your scene.

•	Edit node, PROTO, and field names.

•	Make precise selections within the Text Editor.

For each node, the Scene Tree displays:

•	An icon indicating the node type (for Transform [image], for Shape [image], and so on).

Each node type has a particular icon that is associated with it. Clones (multiple instances) of a node are indicated with the link mark [image] above the node icon.

•	The name of the node type ("Transform" for instance).

•	The name (if any) that you’ve given to the node.

For each PROTO interface declaration, the Scene Tree displays:

•	A PROTO icon [image].

•	The name of the PROTO.

For each field declaration or definition, the Scene Tree displays:

•	An icon indicating the field type and category (for exposedField SFNode [image], for eventIn SFFloat [image], and so on).

ISed fields are indicated with the link mark [image] above the field icon.

•	The name of the field ("children" for instance).

To show only nodes and PROTOs in the Scene Tree, select Show nodes only on the Tree tab in the Options dialog box.

What do you want to know more about?

Scene Tree Navigation

Moving, Copying, and Cloning Nodes

Naming Nodes


Scene Tree Navigation

You can see various levels of the hierarchy contained under nodes and PROTOs by clicking the node icon. Opening a node refers to expanding the hierarchy beneath it. Closing a node refers to collapsing the hierarchy beneath it. You can also click a MFNode field icon to toggle it open and see its values.

 To open or close a node, PROTO, or field:

•	Click the + icon to open the item.

•	Click the – icon to close the item.

•	Type the * button to open all subitems of the selected item.

 To jump to the definition of the selected item (PROTO-instance, nodes clone, or field):

•	Choose Go To Definition from the pull-down menu (right-click the item to see the menu).

•	Or press Ctrl+F11.

 To jump to the reference of the selected item (PROTO-declaration, node, or field declaration):

•	Choose Go To Reference from the pull-down menu.

•	Or press F11.

You can synchronize current selection in the Scene Tree with the caret position in the Text Editor in both directions.

 To set the caret position in the Text editor at a node, PROTO or field:

•	Double-click the item.

•	Or select the item and press ENTER.

•	Or choose Go To from the pull-down menu.

 To set the selection in the Scene Tree to the node, PROTO or field near the caret position:

1.	Activate Text editor window.

2.	Choose Synchronize from the View menu (or type Alt+S).

To have the Scene Tree automatically synchronize selection as you type your code, select Automatic synchronize context on the Tree tab in the Options dialog box.


Moving, Copying, and Cloning Nodes within the Scene Tree

The top-level nodes in a VRML file are in no particular order; so you can reorder them to suit your tastes without changing what your world looks like. You can also move a node (other than a top-level node) or field declaration/definition to reorganize the structure of your world.

 To move a node (field) in the scene hierarchy:

1.	Select the node (field) you want to move.

2.	Click and drag the node (field) icon. When the pointer is over a place where the item can legally be inserted, two red arrows appear; if you release the mouse button at that spot, the node (field) is inserted there.

Note  When the pointer is over a closed grouping node or a MFNode field, rest the mouse pointer over the item for a second and the item will open.

 To copy a node in the scene hierarchy:

1.	Select the node you want to copy.

2.	While holding down the CTRL key, drag the selected node to the new location.

 To clone a node in the scene hierarchy:

1.	Select the node you want to clone.

2.	While holding down the ALT key, drag the selected node to the new location below current selection.

Note  If the dragged node is unnamed, Scene Tree prompts you for the node name.

If you use your right mouse button to drag, a menu appears with the available options.


Naming Nodes in the Scene Tree

Using the Scene Tree, you can rename a node, PROTO declaration or field declaration with appropriate renaming of all its instances (clones).

 To edit the node name using the Scene Tree:

1.	Select the node you want to rename.

2.	Press F2 or right-click over the node and choose Rename.

3.	Type a name in the text box and press Enter or press Esc if you want to leave the text box unchanged.

Note:  VRML node names are not allowed to contain spaces, single or double quotation marks, pound signs (#), commas, periods, square brackets, backslashes, or curly braces. Also, they can’t begin with a numerical digit or the plus (+) or minus (-) characters.

 To clear the node name:

1.	Select the node you want to unname.

2.	Press F2 or right-click over the node and choose Rename.

3.	Clear the text box and press Enter.

Note:  If the node name is in use, the Scene Tree warns you about it.

 To rename a PROTO (with all PROTO-instances of this PROTO):

1.	Select the PROTO declaration you want to rename.

2.	Press F2 or right-click over the PROTO and choose Rename.

3.	Type a name in the text box and press Enter or press Esc if you want to leave the text box unchanged.

 To rename a field declaration (with all references to this field):

1.	Select the field declaration you want to rename.

2.	Press F2 or right-click over the field and choose Rename.

3.	Type a name in the text box and press Enter or press Esc if you want to leave the text box unchanged.

Note:  To prevent renaming field references inside the inlined vrml-script body, select Disable renaming in a script body check box on the Tree tab in the Options dialog box.

 To remove a node, PROTO or field declaration:

1.	Select the item you want to remove.

2.	Press Del or right-click over the item and choose Delete.

Note: To remove also all references to this item (node and PROTO instances, routes, PROTO field implementations) and items within this item, press Ctrl+Del key or choose Delete from the pull-down menu while holding down the CTRL key.


Overview: Routing Map

The Routing Map displays routes of your scene and lets you browse and edit connections between events and exposed fields in your scene.

For each route, the Routing Map displays:

•	An icon [image] and a label indicating the PROTO-context (namespace) of the route, if available.

•	Icons and labels indicating the source and target nodes. Some icons may be shared between two or more routes.

By default, Routing Map displays only node DEF-names. To show also typenames of nodes, select Show node typenames on the Tree tab in the Options dialog box.

•	Icons and labels indicating the source and target fields.

To show also icons indicating actual field owners for ISed prototype interface fields, select Show actual field owners on the Tree tab in the Options dialog box.

•	A colored line indicating the route itself.

To change a color corresponding to some route type, select the route type and desired color in the Route colors box on the Tree tab in the Options dialog box.

What do you want to know more about?

Managing Routes


Managing Routes

 To set the caret position in the Text editor at a route:

•	Double-click the route line. To move to the route source or target node or field declaration, double-click the appropriate icon or label.

•	Choose Go To from the pull-down menu (right-click the route line to see the menu). To move to the route source or target node (or scripts field declaration), choose Go To Source or Go To Target.

 To set the selection in the Routing Map to the route near the caret position:

1.	Activate Text editor window.

2.	Choose Synchronize from the View menu (or type Alt+S).

If the caret position is near a node, field definition or event declaration, the Synchronize command enumerates all routes connecting this node or field with some other fields.

 To select next or previous route:

•	Press Down or Up. Left and Right buttons scrolls Routing Map to show both ends of a long selected route. Typing Ctrl+Page Down and Ctrl+Page Up scrolls Routing Map one page down or up without changing the selection.

 To remove a route:

1.	Select the route you want to remove.

2.	Press Del or right-click over the route line and choose Delete Route.

 To redirect a route:

1.	Select the route you want to change.

2.	Right-click over the route line and choose Add Route (or type Ctrl+R).

3.	Select a new source or/and target node or event name and click OK.

 To add a new route:

1.	Activate Text editor or Scene Tree window.

2.	Select in Scene Tree or move the caret at the source node, scripts eventOut or exposedField.

3.	Choose Start Route from the Edit menu (or type Ctrl+E) to mark the node or the field as a source for the new route.

4.	Select in Scene Tree or move the caret at the target node, scripts eventIn or exposedField.

5.	Choose Add Route from the Edit menu (or type Ctrl+R) to open Add Route dialog box.

6.	Enter, if necessary, unique names for the source or/and target nodes and fill out missing field names.

7.	Check Insert the route at the caret position if you want to place newly created route near the caret position in Text editor. Otherwise, the new route will be inserted at the end of the file or the prototype declaration.

8.	Click OK.


Overview: Resource View

The Resource View displays dependencies (resources) of your scene and lets you browse and edit links to the resources.

For each resource, the Resource View displays:

•	An icon indicating the resource type (for ImageTexture [image], for AudioClips [image], for custom resources [image], and so on).

To determine type of the resource, the Resource View finds the final declaration (unwinding all IS statements) of the field or exposed field of type MFString, containing the URL to the resource as a first string. The type of standard node or PROTO, that contain this declaration, becoming a type of the resource.

Remote resources (beginning with ‘file:’ protocol or with no explicit protocol) are indicated with the link mark [image] above the resource icon.

Missing local resources are indicated with the cross mark [image] above the resource icon.

•	The URL of the resource.

•	The name of the resource type ("ImageTexture" for instance).

•	The reference count to the resource (number of links to this resource).

•	The size of the local resource.

What do you want to know more about?

Managing Resources

Using Drag-and-Drop


Managing Resources

You can easily enumerate all links (URLs) to the resource.

 To set the caret position in the Text editor at a resource URL:

•	Double-click the item. To move to the next link, double-click the item again.

•	Choose Select from the pull-down menu (right-click the item to see the menu).

The list of items in the Resource View may be sorted by URL, by type, by reference count or by file size.

 To sort list of resources:

•	Right-click an empty space or the header of the Resource View. The Sort by entries in the pull-down menu let you specify the sort order.

•	Or click on the appropriate portion of the list box header.  For example, click on the word "Size" in the header to sort by size.  To reverse the sort order, click it again.

Using the Resource View, you can change all links to some resource to the another resource.

 To redirect links to a resource:

1.	Select the resource you want to relink.

2.	Press F2 or right-click over the resource and choose Rename.

3.	Type a name in the text box and press Enter or press Esc if you want to leave the text box unchanged.

 To browse for a local resource:

1.	Right-click over the resource and choose Browse.

2.	Select a resource file you want to link to.

3.	Check Store absolute path if you want to store absolute URL to the resource. Otherwise, relative path to the resource will be inserted, if possible.

4.	Click OK.

 To convert absolute path to a local resource to relative and vice versa:

1.	Right-click over the resource and choose Browse.

2.	Check or uncheck Store absolute path.

3.	Click OK.

If the resource has file associations, you can open it for previewing or editing using the Resource View.

 To refresh list of resources after external files modification:

•	Right-click an empty space or the header of the Resource View. Choose Refresh from the pull-down menu.

 To open a resource using associated application:

•	Right-click over the resource and choose Open or Edit.


Using Drag-and-Drop in the Resource View

You can easily create a new link to resource, using drag-and-drop in the Resource View. You can also move or copy a resource file to an another application (Windows Explorer, for instance).

 To create a new link to a resource:

1.	Select the resource you want to link to.

2.	Drag the selected resource to the location in the Text editor.

When the pointer is over a place where the resource link can legally be inserted, dimmed caret appear; if you release the mouse button at that spot, a new link to the resource is inserted there.

Depending on the place you dropping the resource, only URL string may be inserted, or also a node of the resource type with the "url" field defined.

 To copy resource file to an another application:

1.	Select the resource you want to copy.

2.	Drag the selected resource to the application.

If you use your right mouse button to drag, a menu appears with the available options.

 To open VRML resource in the VrmlPad:

1.	Select the VRML resource you want to open.

2.	Drag the selected resource to the title bar of the VrmlPad.

If you drop a remote resource, VrmlPad automatically downloads it from the Net.


Overview: File List

The File List displays drives, folders, and files accessible from your PC. The right-click menu contains file handling commands and you can open Windows Explorer directly to create folders, run searches, etc.

 To open VRML file in the VrmlPad:

1.	Navigate to the drive and directory you want to access.

2.	Double-click on a folder to display its files.

3.	Double-click on a file to open it in the editor.

Tip  To have the File List use single-click to open a file, select Single click to open a file (point to select) on the File List tab in the Options dialog box.

 To synchronize the selection in the File List with the active document:

•	Choose Synchronize from the View menu (or type Alt+S).

•	Or double-click a tab in the Document Bar.

You can set the file list to show specific file types. The filter is a global setting for all directories.

 To filter the file list:

1.	Open combo box at the bottom of the File List.

2.	Select a file type from the list.

The file list refreshes to apply the filter.

What do you want to know more about?

Using Drag-and-Drop


Using Drag-and-Drop in the File List

Drag-and-drop in the File List works like in Windows Explorer - you can drag files from and to the File List using left and right mouse buttons and CTRL or ALT keyboard modifiers.

In addition, you can insert links to files in the Text editor, using drag-and-drop like in the Resource View.

 To create a link to a file in the Text editor:

1.	Select the file you want to link to.

2.	Drag the selected file to the location in the Text editor.

When the pointer is over a place where the resource link can legally be inserted, dimmed caret appear; if you release the mouse button at that spot, a new link to the resource is inserted there.

Depending on the place you dropping the resource, only URL string may be inserted, or also a node of the resource type with the "url" field defined. In the case of VRML files, a pull-down menu appear; you can choose between an Inline, Anchor or EXTERNPROTO declaration.


Overview: Script Debugger

VrmlPad incorporates an integrated script debugger to help locate bugs in interactive VRML scenes.

Debugging is the process of correcting or modifying the inline vrmlscript code in your VRML scene so that your scene can run smoothly, act as you expect, and be easy to maintained. To this end, VrmlPad provides a variety of tools to help with the varied tasks of tracking down errors in the code.

The debugger interface provides wrapper for the Cortona VRML client, special menus, windows, dialog boxes, and spreadsheet fields. Drag-and-drop functionality is available for moving debug information between components. Occasionally the debugger is paused in break mode, meaning the debugger is waiting for user input after completing a debugging command (like break at breakpoint, step into/over/out/to cursor, break after Break command or Restart).

What do you want to know more about?

Edit Time, Run Time, and Break Mode

Debugger commands

Debugger windows

Using Spreadsheet Fields

Viewing the Value of a Variable

Modifying the Value of a Variable


Edit Time, Run Time, and Break Mode

To test and debug a VRML scene, you need to understand which of three modes you are in at any given time. You use VrmlPad at edit time to create a VRML scene, and at run time to run it. This chapter introduces break mode, which suspends the execution of vrmlscripts so you can examine and alter data. The VrmlPad title bar always shows you the current mode.

The characteristics of the three modes are listed in the following table.

Mode	Description

Edit time	Most of the work of creating a VRML scene is done at edit time. You cannot execute code or use debugging tools, except for setting breakpoints.
From the Debug menu, choose Go, or click the Go button to switch to run time. If your VRML scene contains vrmlscript code that executes when the scene starts, choose Step Into from the Debug menu (or press F8) to place the VRML viewer in break mode at the first executable script statement.

Run time	When a VRML viewer takes control, you interact with the VRML scene the same way a user would. You can view code, but you cannot change it.
From the Debug menu, choose Stop Debugging, or close the VRML viewer window to switch back to edit time.

Break mode	From the Debug menu, choose Break or Break in Script, click the Break button, or press CTRL+BREAK to switch to break mode. Execution is suspended while running the VRML viewer. You can view code, examine or modify data, restart the VRML viewer, end execution, or continue execution from the same point.
You can set breakpoints at edit time, but other debugging tools work only in break mode.

At edit time, you can change the code of a VRML scene, but you cannot see how your changes affect the way the scene runs. At run time, you can watch how the scene behaves, but you cannot directly change the code.

Break mode halts the operation of a VRML client and gives you a snapshot of its condition at any moment. Variable and property settings are preserved, so you can analyze the current state of the VRML scene and enter changes that affect how the scene runs. When the VRML viewer is in break mode, you can:

•	Determine which active procedures have been called.

•	Watch the values of variables, properties, and statements.

•	Change the values of variables and properties.

•	View or control which statement the VRML client will run next.

•	Run vrmlscript statements immediately.

Entering Break Mode at a Problem Statement

When debugging, you may want the VRML viewer to halt at the place in the code where you think the problem might have started. This is one reason VrmlPad provides breakpoints. A breakpoint defines a statement or set of conditions at which VrmlPad automatically stops execution and puts the VRML viewer in break mode without running the statement containing the breakpoint.

You can enter break mode manually if you do any of the following while the VRML viewer is running:

•	Press CTRL+BREAK.

•	Choose Break from the Debug menu.

•	Click the Break button on the toolbar above Debugger windows.

It's possible to break execution when the VRML viewer is idle (when it is between processing of events). When this happens, execution does not stop at a specific line, but VrmlPad switches to break mode anyway. To break execution at a statement of vrmlscript code, choose Break in Script from the Debug menu.

You can also enter break mode automatically when execution reaches a line with a breakpoint or a statement generates a run-time error. A breakpoint halts the VRML viewer just before executing the line that contains the breakpoint. If you want to observe what happens when the line with the breakpoint executes, you must execute at least one more statement. To do this, use Step Into, Step Over, or Step Out. If necessary, you can also skip over statements using Run to Cursor. After stepping through each statement, you can see its effect by looking the debugger windows.

Step Mode	Description

Step Into	Execute the current statement and break at the next line, even if it's in another procedure.
When you use Step Into to step through code one statement at a time, VrmlPad temporarily switches to run time, executes the current statement, and advances to the next statement. Then it switches back to break mode.

Step Over	Execute the entire procedure called by the current line and break at the line following the current line.
Step Over is identical to Step Into, except when the current statement contains a call to a procedure or a single-line loop. Unlike Step Into, which steps into the called procedure, Step Over executes it as a unit and then steps to the next statement in the current procedure.

Step Out	Execute the remainder of the current procedure and break at the statement following the one that called the procedure.

When the VRML viewer is in break mode, you can use the Run to Cursor command to select a statement further down in your code where you want execution to stop. This lets you "step over" uninteresting sections of code, such as large loops.

Note  When you are trying to isolate a problem, remember that a statement might be indirectly at fault because it assigns an incorrect value to a variable. To examine the values of variables and properties while in break mode, use the Variables window, Quick Watch, or the Immediate window.

What do you want to know more about?

Debugger commands

Debugger windows


Debugger menu items
Debugger commands

Commands for debugging can be found on the Debug menu, the View menu, the Debug Windows toolbar and the main toolbar.

To start debugging, choose the Go, Run Embedded, Step Into or Run To Cursor command from the Debug menu. The following table lists the Debug menu commands that may appear and their actions.

Go

Runs the Cortona VRML client until a breakpoint is reached.

Keyboard shortcut: Shift+F5.

Run Embedded

Starts Microsoft Internet Explorer and runs specified HTML page (local or remote) with an embedded (through tags <OBJECT> or <EMBED>) Cortona VRML control. Executes scripts until a breakpoint is reached or an user stops or breaks the execution.

Step Into

Runs the Cortona VRML client and enters break mode before the first line of vrmlscript code is executed.

Keyboard shortcut: F8.

Run to Cursor

Runs the Cortona VRML client as far as the line that contains the insertion point. This is equivalent to setting a temporary breakpoint at the location of the insertion point.

Keyboard shortcut: Ctrl+F8.

When you begin debugging, the Debug Windows appear and you can control the program execution using the commands listed in the following table.

Go

Executes code from the current statement until a breakpoint is reached or an user stops or breaks the execution.

Keyboard shortcut: Shift+F5.

Restart

Restarts the Cortona VRML client and discards the current values of all variables (breakpoints and watch expressions still apply).

Keyboard shortcut: Ctrl+F5.

Break

Stops execution of the VRML client while it's running and switches to break mode. Any statement being executed when you choose this command is displayed in the Text editor with [image] in the left margin if you have checked Show selection margin in the Editor tab of the Options dialog box. If the VRML client is waiting for events in the idle loop (no vrmlscript statement is being executed), no statement is highlighted until an event occurs.

Note  Editing changes made in the break mode may require you to restart the VRML client for the changes to take effect.

Keyboard shortcut: Ctrl+Break.

Break in Script

Runs the VRML client until a statement of vrmlscript code is executed. Then stops execution and switches to break mode.

Stop Debugging

Stops running the VRML client and returns to a normal editing session.

Keyboard shortcut: Alt+F5.

Step Into

Single-steps through instructions in the code, and enters each function call that is encountered.

Keyboard shortcut: F8.

Step Over

Single-steps through instructions in the code. If this command is used when you reach a function call or single-line loop, the function is executed without stepping through the function or loop instructions.

Keyboard shortcut: Shift+F8.

Step Out

Executes the code out of a function call, and stops on the instruction immediately following the call to the function. Using this command, you can quickly finish executing the current function after determining that a bug is not present in the function.

Keyboard shortcut: Ctrl+Shift+F8.

Run to Cursor

When the VRML client is in break mode, use Run To Cursor to select a statement further down in your code where you want execution to stop. Your code will run from the current statement to the selected statement and the current line of execution margin indicator [image] appears in the Selection margin.

Keyboard shortcut: Ctrl+F8.

Toggle Breakpoint

Sets or removes a breakpoint at the current line. Breakpoint is a selected line of code at which execution automatically stops. You can't set a breakpoint on lines containing nonexecutable code such as native VRML text, comments, or blank lines.

A line of code in which a breakpoint is set appears in the colors specified in the Format tab of the Options dialog box.

Keyboard shortcut: F9.

Clear All Breakpoints

Removes all breakpoints in your files. You cannot undo the Clear All Breakpoints command.

Show Next Statement

Highlights the next statement to be executed. Use the Show Next Statement command to place the cursor on the line that will execute next.

Quick Watch

Displays the Quick Watch dialog box with the current value of the selected expression.

Use this command to check or modify the current value of a variable, property, or other expression for which you have not defined a watch expression. Select the expression from Text editor and then choose the Quick Watch command. To add a watch expression based on the expression in the Quick Watch dialog box, choose the Add Watch button.

Keyboard shortcut: Shift+F9.

Modules

Displays the Modules dialog box with loaded to VRML client files, Script nodes and vrmlscript functions.


Debugger windows

Several specialized windows display debugging information for your code. When you are debugging, you can access these windows using the View menu. (In addition to windows, the debugger also uses dialog boxes to display debugging information.)

Context Box
The Context Box contains the current call stack in a drop-down list box. Use this list to specify the current scope of the variables displayed. This procedure changes the view of the code displayed in the Text editor, the Variables window and other debugger windows, but does not change the next line of execution or the value stored in the program counter.

Variables Window
The Variables window provides quick access to variables that are available in the current context and displays the variables that are local to the current function, interface fields and outgoing events of the Script node and global variables.
The Variables window contains a spreadsheet with fields for the variable name and value. The debugger automatically fills in these fields.
You cannot add variables or expressions to the Variables window (you must use the Watch window) - but you can expand or collapse the variables shown using the tree controls. You can expand an array or object variable in the Variables window if it has a plus sign (+) box in the Name field. If an array or object variable has a minus sign (–) box in the Name field, the variable is already fully expanded. To expand or collapse the variable, click the + or – box, as described in Spreadsheet Fields.

Watch Window
Use the Watch window to specify variables and expressions that you want to watch and modify while debugging your code.
If you add an array or object variable to the Watch window, plus sign (+) or minus sign (–) boxes appear in the Name column. You can use these boxes to expand or collapse your view of the variable, as described in Spreadsheet Fields.

Immidiate Window
The Immediate window displays information from commands typed directly into the window. You can type or paste a line of code and press ENTER to run it. Use the Immediate window to:
- Test problematic or newly written code.
- Query or change the value of a variable. While execution is halted, assign the variable a new value as you would in code.
- Call procedures as you would in code.

What do you want to know more about?

Viewing the Value of a Variable

Modifying the Value of a Variable


Using spreadsheet fields
Spreadsheet Fields

The debugger interface uses spreadsheet fields, which have an interface similar to that of Microsoft Excel. These spreadsheet fields appear in the Watch window, the Variables window, and the QuickWatch dialog box.

The window where the spreadsheet field is located determines which cells are editable. In the Variables window, you can edit the cells in the Value column. In the Watch window, you can edit the cells in the Name and Value columns.

Spreadsheet fields contain controls for easy viewing of array and object variables. If the variable is an array or object, the branch below the variable contains the component elements or properties.

The variables are marked with a box containing a plus sign (+) in the Name column. You can expand the variable by clicking the + box, which opens into a tree that may contain additional boxes. When a variable is expanded, the box in the Name column contains a minus sign ( –). You can collapse an expanded variable by clicking the – box. As an alternative, you can expand a variable by selecting it and pressing the ENTER, PLUS SIGN or RIGHT ARROW key. You can collapse a variable by selecting it and pressing the ENTER, MINUS SIGN or LEFT ARROW key.

Scalar variables, which have no components to expand, do not have boxes in the Name column.

When working with these fields, you can size a column manually by dragging the divider at the right edge of the column.


Viewing the Value of a Variable

The easiest way to see the value of a variable when the debugger is stopped at a breakpoint is to use CodeTips pop-up information.

You can view a CodeTips pop-up information box for any variable that appears in a Text editor and is within the current scope. To see a pop-up box, place the mouse pointer over the variable.

CodeTips pop-up information is not available for invalid or undefined variables.

 To view the value of a variable or expression:

1.	Wait for the debugger to stop at a breakpoint.
– or –
Click Break or Break in Script on the Debug menu to halt the debugger.

2.	On the Debug menu, click QuickWatch.

3.	Type or paste the variable name or expression into the Expression text box.

4.	Click Close.

Tip  The Expression drop-down list box contains the most recently used QuickWatch expressions.

 To view the value of a variable using QuickWatch:

1.	When the debugger is stopped at a breakpoint, switch to a source window, and click the right mouse button on a variable or selected expression (Var, for example).

2.	On the shortcut menu, click QuickWatch Var.

3.	Click the Recalculate button.

4.	Click Close.

 To view a variable or expression in the Watch window:

1.	Start debugging, and pause the debugger in break mode (program is waiting for user input after completing a debugging command).

2.	Type, paste, or drag the variable name or expression into the Name column on the Watch window.

3.	Press ENTER (if typing).

The Watch window evaluates the variable or expression immediately and displays the value or an error message.

 To view a variable in the Variables window:

1.	Start debugging, and pause the debugger in break mode (program is waiting for user input after completing a debugging command).

2.	Find the variable in the Name column and view its value.

 To view a variable or expression in the Immidiate window:

1.	Start debugging, and pause the debugger in break mode (program is waiting for user input after completing a debugging command).

2.	Type, paste, or drag the variable name or expression into the window.

3.	Press ENTER.

The Immidiate window evaluates the variable or expression immediately and displays the value or an error message.


Modifying the Value of a Variable

When the script is paused at a breakpoint or between steps, you can change the value of any vrmlscript variable in your code.

 To modify the value of a variable using QuickWatch:

1.	On the Debug menu, click QuickWatch.

2.	In the Expression text box, type the variable name.

3.	Click the Recalculate button.

4.	If the variable is an array or object, use the + box to expand the view until you see the value you want to modify.

5.	Double-click the value or use the TAB key to move to the value you want to modify.

6.	Type the new value, and then press ENTER.

7.	Click Close.

 To modify the value of a variable using the Watch window:

1.	If the variable is an array or object, use the + box to expand the view until you see the value you want to modify.

2.	Double-click the value or use the TAB key to move the insertion point to the value you want to modify.

3.	Type the new value, and press ENTER.

 To modify the value of a variable in the Variables window:

1.	Select the line containing the variable whose type you want to modify.

2.	If the variable is an array or object, use the + box to expand the view until you see the value you want to modify.

3.	Double-click the value, or use the TAB key to move the insertion point to the value you want to modify.

4.	Type the new value, and press ENTER.

 To modify the value of a variable in the Immidiate window:

1.	Type the variable name or l-value expression, the assignment operator ( = ) and the new value.

2.	Press ENTER.


The Basics of Publishing

Publishing refers to the process of locating all the files necessary to create a document, scene, or world and organizing the files for publication on a server. The Publishing Wizard is also able to put the files on your Web server, using Microsoft Web Publishing engine, or send it by e-mail, using MAPI transports.

Publishing is a one-way process. Publishing leaves your original files alone, but as it makes copies of those files it changes and optimizes those copies. Any time you want to change your world, reopen the original source files for the world, then make changes and republish. Don't modify the published copies directly.


Setting Up the Destination

The first step of the publishing process is to choose a destination for your published files.

If you have already published your scene, choose an existing destination directory. Later in the publishing process, the Publishing Wizard may remove the contents of the directory before creating the new version of the published world.

If you haven't previously published your scene, enter a name for a new destination directory (which the Publishing Wizard then creates for you), or click the Browse button and choose a directory from the file browser.

If you have selected Publish files to the net option for the first time, get ready to download and install the latest version of Microsoft Web Publishing Wizard. It automates the process of copying files from a temporary destination directory to the Web or FTP server.

Click Next when you're done.

If you change your mind, you can come back to this dialog by clicking a Back button. At any point in the publishing process you can click Cancel to stop the process without publishing.

If you already published some scenes, you can click Finish to complete the process now using recently used settings for the rest of the dialogs.


Choosing Additional Resource Directories

The next step of the publishing process is to choose the additional resource directories. Some scenes may contain invalid links to the resources, that that are possibly kept somewhere. To help the Wizard find these resources, you can specify a list of directories. Starting from these directories, the Publishing Wizard will search missing resources.

 To add a directory to the list:

1.	Click the Add button.

2.	Choose a directory from the file browser.

3.	Click OK.

Click Next when you're done, or Back to return to the previous Wizard step.


Excluding Files from Publishing

This step lets you list files that you don't want the Publishing Wizard to include. You might want to exclude files that have been previously published, files that have been manually checked, files you know will already be on the Web server, or test files that you don't want to include in the final world.

Exclude filenames from the publish by selecting them in the list, then click Exclude. Revert this operation by selecting filenames in the list, then click Include. Excluded filename are marked by a cross mark [image].

URLs in your document which refer to these files are left unchanged in your documents.

Click Next when you're done, or Back to return to the previous Wizard step.


VRML Optimization Options

This step of the publishing process lets you choose options to optimize your world.

•	Pack VRML files using maximum compression

Compressed files download faster and use less disk space, so use of this feature is recommended. Most browsers automatically decompress files that have been compressed. To disable this feature, click the box to remove the check.

•	Remove extra formatting from VRML files

Check the box if you want the Publishing Wizard to reformat the VRML files by unindenting lines, removing unnecessary whitespaces and empty lines. Reformatted files use less disk space, but usually lost in human readability.

•	Remove comments

Selecting this option removes all comments from a file during the reformat.

•	Remove default field values

Selecting this option removes field values which are explicitly declared with a value identical to the default field value.

•	Simplify floating point numbers

Check the box if you want the Publishing Wizard when possible to reduce float numbers to integers without lost of quality, remove trailing zeros and remove unnecessary zero values to the left of decimal point. For example, number 10.0 reduce to 10, 0.10 – to .1 and so on.

•	Adjust numeric resolution

This option also removes unnecessary text, but in some cases such removal is lossy, and in other cases there may be external code, such as an EAI application, relying on the text. So you should be considered carefully before use the option.

This option adjusts numeric resolution of floating point numbers. In many cases, exporters output these numbers with a much greater resolution than necessary. The sub-options allow resolution to be indicated by type of the number. For example, coordinate resolution relates to all world coordinates and sizes: the point field in the Coordinate node, the size field in the Box node and so on. Orientation resolution relates to all SFRotation and MFRotation fields and also to the fields that defines angles.

Click Next when you're done, or Back to return to the previous Wizard step.


Specifying Directory Organization

In this step, you decide whether you want to use a flat directory structure, or whether you want to use a hierarchical structure.

•	Put all source files in one directory

This is the best choice if your world uses only a few files.

•	Arrange source files in subfolders, depending of its type

Use the resource type based directory structure. This is the best choice if you have a complex multi-file world.

•	Retain the same directory structure used by the source files

Use the same directory structure that your source files use. This is the best choice if you have a complex multi-file world stored in a set of nested directories.

•	In-line resources as base64 encoded data

Include resources of specified types into VRML files body, excluding it from the list of publishing files. VRML files with in-lined resources are currently supported only by Cortona VRML viewer.

Click Next when you're done, or Back to return to the previous Wizard step.


Reviewing the Directory Structure

In this step, you review the directory structure. This dialog lists every file that will be placed in the destination directory. If the files don’t have the names and locations you expect, click Back to go back to the mappings dialog.

Click Next when you're done, or Back to return to the previous Wizard step. Your files are set up for final publishing when you click Next, so you can't turn back to previous steps from this point.


Previewing Published Documents

The final step of the Publishing lets you preview the published world immediately. Click Preview to preview the world in your default browser. Click Open Folder to open the destination directory with your files, using Windows Explorer window.

If you have chosen publishing to the net or through e-mail in the first step, click Next to launch Microsoft Web Publishing Wizard or mail sender. Otherwise, click Close to finish publishing.


Resolving Broken Links

You encounter an error during publishing. The Publishing Wizard has found broken links to some resources. To continue, you can choose one of the following ways:

•	If you know exact location of the missing resources, you can resolve it manually:

1.	Select a link in the list below.

2.	Click the Resolve button.

3.	Choose a resource file from the file browser.

4.	Click OK.

5.	Repeat from the step 1 until there are no more links in the list.

•	If some of the missing resources located in a known directory, return Back to the previous page and add this directory to the list of additional resource directories.

•	You may skip this page, removing broken links from a source VRML file(s). Select the Yes radio-button and click the Next.

•	Finally, you can Cancel publishing and look into your VRML sources.


Publishing Errors

You encounter an error during publishing. The Publishing Wizard has found some errors or warnings in the VRML files to be publishing. The dialog box lets you copy errors to the clipboard so you can paste them into a text editor for future reference.

If the listed errors is serious enough, Cancel publishing and fix errors. Otherwise, click Next to continue publishing.


Hints and Tips

Basic

How to compress a VRML file

How to download a VRML file from the Net.

How to upload a VRML file to a remote server.

How to quickly find the definition (reference) of an identifier.

How to insert a pair of node or PROTO braces.

How to insert default field value.

How to indent a block of lines.

How to comment a block of lines or an entire node.

How to locate a syntax or semantic error.

Advanced

How to make a VRML file smaller.

How to expose a field to a PROTO interface.

How to register a VRML extension.

How to change a set of the standard nodes.

What are the ways I can access the VrmlPad object model?

How to automate VrmlPad from another application.


How to compress a VRML file

Compressed files download faster and use less disk space, so use of this feature is recommended. Most browsers automatically decompress files that have been compressed.

 To compress an existing VRML file:

1.	From the File menu, choose Open.

2.	Select your file.

3.	Click OK.

4.	Change the compression level, if you like, as written below.

5.	From the File menu, choose Save As.

6.	Select Save compressed checkbox.

7.	Enter or select a destination file name.

8.	Click OK.

 To change default compression level:

1.	From the Tools menu, choose Options.

2.	Select the General tab.

3.	Use the Default compression drop-down list to select the compression level:

•	Maximum – best compression, but lowest speed of compression;

•	Normal – balance between speed and compression quality;

•	Fast – fastest speed, but poor compression quality.

4.	Click OK.

 To compress a file without using the Save As dialog box:

1.	Double-click the pane GZ in the status bar at the bottom of VrmlPad window.

2.	From the File menu, choose Save, or type Ctrl+S.


How to download a VRML file from the Net.

 To download a file:

1.	From the File menu, choose Download, or double-click the pane WEB in the status bar at the bottom of VrmlPad window.

2.	Type valid Internet address (URL) of your file to the Open box, or use the drop-down list to select previous URLs. When you select an URL in this list, the URL is added in the Open box.

3.	Specify additional download options.

4.	Click OK.

 To download a file without using the Download dialog box:

•	Drag-and-drop an Internet shortcut from your Web-browser to the caption of VrmlPad.

 To cancel downloading:

•	Double-click the animated globe in the status bar at the bottom of VrmlPad window.


How to upload a VRML file to a remote server.

First of all you should download and install the latest version of Microsoft Web Publishing Wizard from http://www.microsoft.com/windows/software/webpost/. It automates the process of copying files from your PC to the Web or FTP server.

 To upload a VRML file using Microsoft Web Publishing Wizard:

1.	Open the file into VrmlPad.

2.	From the File menu, choose Publish.

3.	Select Publish files to the net options in the first page.

4.	Proceed through the rest of the Publishing Wizard.

5.	After the last page, follow instructions of the Microsoft Web Publishing Wizard. For the first time, specify there path to your FTP server, user name and login.


How to quickly find the definition (reference) of an identifier.

 To jump to the definition of an identifier (PROTO, node, or field name):

1.	Position the caret at the identifier in the Text editor, or select an identifier in the Scene Tree.

2.	Select Go To Definition from the pull-down menu or type Ctrl+F11.

 To jump to the reference of an identifier (PROTO, node, or field name):

1.	Position the caret at the identifier in the Text editor, or select an identifier in the Scene Tree.

2.	Select Go To Reference from the pull-down menu or type F11.

3.	Select Next Reference from the pull-down menu or type F11 to jump to the next reference of the identifier.


How to insert a pair of node or PROTO braces.

 To insert a pair of braces after node or PROTO name:

1.	Position the caret to the space after node or PROTO name.

2.	Type Ctrl+Space.


How to insert default field value.

 To insert a default value after field declaration or definition:

1.	Position the caret to the space after the field declaration or definition or inside multiple field value.

2.	Type Ctrl+Space.


How to indent a block of lines.

 To indent a block of lines:

•	Select the lines and then press Tab.

 To unindent a block of lines:

•	Select the lines and press Shift+Tab.

 To format a block of lines using the smart indent settings:

•	Select the lines and press Ctrl+Shift+F.


How to comment a block of lines or an entire node.

 To comment a block of lines:

•	Select the lines and press Ctrl+Shift+C.

 To uncomment a block of lines:

•	Select the commented lines and press Ctrl+Shift+C.

 To comment a node, PROTO declaration or field:

•	Select the identifier of a node, PROTO declaration or field in the Scene Tree and choose the Comment from the pull-down menu or press Ctrl+Shift+C.


How to locate syntax or semantic error.
How to locate a syntax or semantic error.

 To jump to the first error:

•	Double-click on the highlighted error indicator in the status bar at the bottom of the VrmlPad window.

 To jump to the next error:

•	From the View menu, choose Next Error or type F4.


How to make a VRML file smaller.

Reducing file size and improving reliability and performance go hand in hand. VrmlPad can automatically remove code that is unnecessary, redundant or unusable. The size reduction is often dramatic, and the resulting file is more likely to run consistently across browsers.

 To reduce file size using the Unused Identifiers dialog box:

1.	From the View menu, choose Unused Identifiers.

2.	In the list below, select identifiers you want to remove.

3.	Click Delete or type Del.

Note  You can safely remove default field values. Remove identifiers of the other types with caution – some node names or field declarations may be used by outer scripts, EAI or ActiveX components. Also, some VRML authoring tools may use unnecessary for rendering node names and field declarations for holding additional user interface information, such as object names and properties.

 To reduce file size using the Publishing Wizard:

1.	From the File menu, choose Publish.

2.	In the first page, choose copying document to a folder.

3.	Proceed through the following pages up to the Specify VRML preferences page.

4.	Select the options you want to.

5.	Proceed through the rest of the Wizard.


How to expose a field to a PROTO interface.

 To automatically expose a field:

1.	Position the caret to the space after the field definition or Script node’s field declaration (without a field value).

2.	Type the IS keyword into your code and press SPACE.

3.	Type Ctrl+Space and select one of the choices.

There are four possible choices in the case of the exposedField:

•	Expose the field as an exposeField declaration.

•	Expose the field as a field declaration.

•	Expose the field as an eventIn declaration.

•	Expose the field as an eventOut declaration.

4.	Press SPACE or ENTER.


How to register a VRML extension.

VRML extension is a set of custom node types in addition to a set of the standard VRML97 nodes.

 To register a VRML extension:

1.	Create a VRML file (in VrmlPad, for instance), containing PROTO declarations with empty bodies. These PROTOs should describe your VRML extension – names of the additional node types, field names, categories and types.

Note  Actually, a set of the standard VRML97 nodes implemented internally in VrmlPad as a hidden VRML file. To open it in the editor, type Ctrl+Shift+N.

2.	Save the file somewhere.

3.	From the Tools menu, choose Options.

4.	Select the General tab.

5.	Select Enable VRML extensions checkbox.

6.	Type in the Source field path to the saved file or browse it using a button at the right of the field.

7.	Click OK.

8.	Restart VrmlPad.


How to change a set of the standard nodes.

 To change a standard set of node types, using VrmlPad:

1.	Type Ctrl+Shift+N to load the standard nodes as PROTO declarations.

2.	Make all changes you want to.

3.	Save the file somewhere.

4.	From the Tools menu, choose Options.

5.	Select the General tab.

6.	Select Enable VRML extensions checkbox.

7.	Type in the Source field path to the saved file or browse it using a button at the right of the field.

8.	Select Ignore all standard node types checkbox.

9.	Click OK.

10.	Restart VrmlPad.


What are the ways I can access the VrmlPad object model?

You can access the VrmlPad object model in three ways:

•	Write VBScript or JavaScript macros that script VrmlPad through its object model.

•	Create add-ins.

•	In ActiveX-enabled applications, write an Automation controller that accesses VrmlPad by creating an instance of it. For example, in Visual Basic, use the CreateObject function to create an instance of VrmlPad. Or in C++, call the Win32 CoCreateInstance function. For more information, see the application's documentation.


How to automate VrmlPad from another application.

With Automation, you can control VrmlPad from other applications such as Word, Excel, or Visual Basic. You can start VrmlPad, automate VrmlPad tasks, and then stop VrmlPad when the tasks are finished.

To start VrmlPad from another application, create an instance of the VrmlPad Document object. For example, to start VrmlPad from Visual Basic or Visual Basic for Applications, use the following code:

Dim doc As Object
Set doc = CreateObject("VrmlPad.Document")

In Visual Basic you can use the VrmlPad type library to access the VrmlPad object model. To do this, from the Project menu choose References and select the VrmlPad Application Library checkbox.

Dim doc As VrmlPad.Document
Set doc = New VrmlPad.Document

When VrmlPad starts, it will be invisible — unless you make it visible by using the Visible property of the Window object:

Dim doc As VrmlPad.Document
Set doc = New VrmlPad.Document
doc.Window.Visible = True

After starting VrmlPad, you can automate tasks in it by using the appropriate code. For example, in the following code, a WorldInfo node is added to the created document:

Dim doc As VrmlPad.Document
Set doc = New VrmlPad.Document
doc.Window.Visible = True
doc.RootNodes.Add("WorldInfo")("info") = "Created by me"

After completing your VrmlPad tasks, you can stop VrmlPad releasing all references to the Document object. If you use Visual Basic to automate VrmlPad, Visual Basic automatically releases all references to the Document object.

Note	If the user tries to stop VrmlPad while your program is controlling it, VrmlPad will remain in memory but the user interface will become invisible. If this happens, release all references to the Document object so that VrmlPad can quit.


Processes your input and carries out any default action, such as closing the dialog box.


Cancels your input and carries out the default action, such as closing the dialog box.


Provides a space for you to specify the search text or the regular expression to match. Type the text or expression in the Find what box. Use the drop-down list to select previous search strings. Use the right-arrow button to the right of the drop-down list to display a list of regular search expressions. When you select an expression in this list, the expression is added as search text in the Find what box. If you use regular expressions, be sure the Regular Expression check box is selected. You can also use the drop-down list to select from a list of up to 16 previous search strings.

See also: Finding Text


When selected, finds text strings that match the Find what string and are preceded and followed by a space, tab, or punctuation character, or are at the start or end of a line. Otherwise, the search finds any matching string, whether it is a fragment of a larger string or not.


When selected, searches for text strings that match the case of the characters in the Find what string exactly. Otherwise, the search finds strings with either uppercase or lowercase characters that match the characters in the Find what string.


When selected, finds regular expressions for the search specified in the Find what box.


When selected, searches across all documents currently open in the workspace.


When selected, indicates that the direction of the search will be from the current cursor position to the beginning of the file, and then back to the current cursor position.


When selected, indicates that the direction of the search will be from the current cursor position to the end of the file, and then back to the current cursor position.


Displays a list of regular search expressions. When you select an expression in this list, it is added as search text in the Find what box.


Begins the find operation specified by the values displayed in this dialog box.


Click to place a bookmark on all instances of the word or expression in the Find what box.


Provides a space for you to specify the string of characters to replace the characters found. You cannot use regular expressions in the string, but you can use tagged expressions.


Click to display a list of up to nine tagged expressions that you can use as replacement text in the Replace with text box.


Replaces strings in the current selection only. This option is disabled when no text is selected.


Replaces strings in the entire file.


Replaces strings across all documents currently open in the workspace.


Click to replace the currently selected string with the string specified in the Replace with text box.


Click to replace all strings that match the Find what string automatically, without requiring confirmation for each replacement.


Displays a list of Go To items such as Lines, PROTO, Node and field names, PROTOs.

See also: File Navigation


Provides space for you to type text for additional selection criteria or select an item from a list. The additional selection criteria you enter depend on the Go to what selection. For example, if you select Node definition in the Go to what box, you enter a node name.


Click Go To to jump directly to the item displayed in the Go to what list and the Go to what edit box. For example, if you select Line in the Go to what list and enter 240 in the Go to what edit box, you will jump in the current document to line 240.


Click Next to jump directly to the next item of the type selected in the Go to what list. For example, if PROTO instance is selected in the list box, select one from the Enter PROTO name list box and click Next to jump to the next PROTO instance in the current document.


Jumps directly to the previous item of the type selected in the Go to what list. For example, if PROTO instance is selected in the list box, select one from the Enter PROTO name list box and click Previous to jump to the previous PROTO instance in the current document.


The checkbox determines whether you will be able to open VRML files using VrmlPad from the Windows Explorer’s pull-down menu. If this option is checked, the following extensions will be associated with VrmlPad: WRL, WRL.GZ, WRZ, and VRML. If this option is not checked, VrmlPad will ensure it is not associated with these extensions.


Open VRML files using VrmlPad choosing Open from the Windows Explorer’s pull-down menu or double-clicking on VRML files.


Open VRML files using VrmlPad choosing Edit from the Windows Explorer’s pull-down menu.


Open VRML files using VrmlPad choosing Sent To from the Windows Explorer’s pull-down menu.


If this checkbox is selected, VrmlPad is automatically added to the Taskbar Start menu. Uncheck this option to remove VrmlPad from the Start menu.


If this checkbox is selected, a shortcut to VrmlPad is added to the desktop. Uncheck this option to remove the VrmlPad shortcut from the desktop.


Select this checkbox to specify that VrmlPad automatically reload externally modified file that has been loaded (but not yet changed) by the editor.


If this checkbox is selected, VrmlPad will save uncompressed files with CR/LF end of line indicator. If not, VrmlPad will terminate lines only by LF character.

CR/LF is short for Carriage Return/Line Feed, the standard end of line indicator. Unix text files usually contain lines ending in Line Feed characters only, and Macintosh text files usually contain lines ending in a Carriage Return character.  The standard Windows Notepad program and many other Windows programs require a Carriage Return and Line Feed at the end of each line.


Choose the default compression level at which the VRML file is compressed.


Provides a space for you to specify the root folder for downloaded files. You can download a remote VRML file to this folder by choosing Download from the File menu. Also for the file resources a subfolder will be created in the same folder.


Choose a root folder for downloaded files from the file browser.


If this checkbox is selected, VrmlPad will download in addition to remote VRML file also its resources (dependencies).


If this checkbox is selected, VrmlPad will recursively download all subdependencies of VRML resources. Otherwise, only immediate dependencies of specified remote file will be downloaded.


If this checkbox is selected, VrmlPad will download only resources with specified relative URLs. For example, a resource linked in a VRML file as "img/pic1.gif" will be downloaded, as "http://www.microsoft.com/index.htm" – will not.


If this checkbox is selected, VrmlPad will try to retain the same directory structure used by the remote source files.


Select this checkbox to extend or change the set of standard VRML97 nodes. For example, if you want to learn VrmlPad to work with custom node types, create a VRML file, containing PROTO interfaces with empty PROTO definitions or EXTERNPROTO declarations, select Custom nodes checkbox and specify in the Custom nodes source editbox path to your file.
You should restart VrmlPad after this operation to changes take effect.


Provides a space for you to specify the full path name of VRML extensions source file. This file must be a valid VRML file and should contain PROTO or EXTERNPROTO interfaces of a custom node types. Corresponding PROTO definitions (bodies) are ingored by VrmlPad, so it can be empty.

You should restart VrmlPad after this operation to changes take effect.


Choose a full path name of VRML extensions source file from the file browser.


Changes the priority of the selected node library. For example, if you want to overlay standard VRML97 nodes with your custom nodes, select Custom nodes item in the list and move it up just before Standard VRML97 nodes item.


If this checkbox is selected, VrmlPad will automatically insert at the top of file EXTERNPROTO declaration of the extension node you've autocompleted.
If this checkbox is not selected, you can insert all required EXTERNPROTO declarations by double-clicking highlighted EXT status bar indicator.


Provides a space for you to specify the remote or local path to a HTML reference for the Node help. By typing F1 on a node near the caret position (or selected node in Scene Tree) VrmlPad will open this reference with asterisk (*) replaced with the node typename.


Click this button to online update the list of node libraries by connecting the ParallelGraphics FTP-server.


If this checkbox is selected, VrmlPad will try to download all resources in custom (EXTERNPROTO or Script node) URL-like field values of type MFString. By default, VrmlPad downloads only MFString fields containing substring url (in any case) in their name.


If this checkbox is selected, the new route replaces the route currently selected in the Text editor or the Routing map.


Shows/Hides extended download options.


You can modify the Text editors's behavior by selecting the following options:

Horizontal scroll bar

Select this checkbox to include horizontal scroll bar in editor window.

Vertical scroll bar

Select this checkbox to include vertical scroll bar in editor window.

Dispay whitespace characters

Select this checkbox to show tab characters and spaces.

Enable virtual space

Allows the cursor into locations that do not currently contain text.

Show selection margin

Select this checkbox to display a margin to the left of each line of text. You can use this margin to select text and display bookmarks and node folds.

Allow node folding

Enables node folding.

Show line numbers

Select this checkbox to display line numbers for each line of text on the selection margin.

Render node thumbnails

Enables node thumbnails.

Highlight language syntax

Enables syntax coloring.

Drag-and-drop text editing

Select this checkbox to enable drag-and-drop text editing so you can move or copy selected text with the mouse.

Enable copy without selection

Enables the copy command to copy the entire line in which the cursor is placed.

Enable syntax tips

When selected, displays on-screen descriptions of VRML identifiers, braces and field values when you float your cursor over the text.

Auto list identifiers

Select this checkbox to enable AutoComplete list box automatically open as you type your code.

Protect read-only files from editing

Prevents you from using the Text editor to modify read-only files.


Provides a space for you to specify the number of space characters that equal one tab character. The default is four space characters.


Provides a space for you to specify the column width in spaces between indent locations. The default is four spaces. Pressing the TAB key once moves the cursor to the next indent location.

Tab size and Indent size work together in this way: If you have an Indent size of seven characters, a Tab size of three characters, and the insertion point in a text file is at indent location, pressing the TAB key once inserts two tab characters (each three spaces wide) plus one space character (one space wide) to move the seven character positions to the next indent location.


Convert tabs to the number of spaces specified int the Tab size box when you editing or save a file.


Saves tabs as tab characters when you save a file.


None

Does not indent source code automatically.

Default

Indents source code using the tab and indent sizes.

Smart

Indents open and closing braces to have VRML code best look.


Lists the available fixed-pitch fonts. Select the font name from the drop-down list.


Lists the available font sizes. Select the font size from the drop-down list.


Lists the window elements for which you can specify a foreground or background colors. The Background and Foreground boxes display the standard colors, the Custom setting and the Automatic setting. The text sample displayed in the Sample box changes to the color you select.
The behavior of the Automatic setting depends on the element selected. For colors that map to standard system elements (such as Text or Selected Text), the Automatic setting sets the element to the appropriate system color. For syntax coloring elements and other non-system defined colors, the Automatic setting indicates that the foreground color or background color from the parent category is to be used.


Lists the foregroung color for the selected element in the Colors list. Click the arrow to display the standard colors, Custom colors or Automatic. For syntax coloring elements and other non-system defined colors, the Automatic setting indicates that the foreground color from the parent category is to be used.


Lists the backgroung color for the selected element in the Colors list. Click the arrow to display the standard colors, Custom colors or Automatic. For syntax coloring elements and other non-system defined colors, the Automatic setting indicates that the background color from the parent category is to be used.


Select this checkbox to have the Scene Tree automatically synchronize selection to the node, PROTO or field near the caret position in the Text editor.


Select this checkbox to show only nodes and PROTOs in the Scene Tree.


Select this checkbox to specify that Scene Tree show named nodes using bold font style.


Select this checkbox to prevent renaming field references inside the inlined vrml-script body during renaming a field declaration.


Select this checkbox to specify that the Resource View automatically resize columns to fit all list items.


Resource View's default action is to use the Windows Explorer style of file selection, requiring that the resource name itself be clicked. This option allows you to click anywhere on the resource's row of information in order to select it.


Choose the default action that the Resource View performs on double-click or pressing ENTER on a resource item.


Select this checkbox to specify that File List should synchronize the current system directory to the current displayed directory.


Select this checkbox to specify that File List automatically set the current displayed directory to the self directory of a recent loaded file.


File List's default action is to use the Windows Explorer style of file selection in details view, requiring that the file name itself be clicked. This option allows you to click anywhere on the file's row of information in order to select it.


Select this checkbox to display grid lines in details view to separate rows and columns in the File List.


Select this checkbox to specify that File List show icons as they would appear in Windows Explorer. Otherwise a set of generic items are used.


Specifies that you want to open items in File List by single-clicking them, just like you would click a link on a Web page. To select an item without opening it, you would rest your mouse pointer on it.


Specifies that you want icon titles in File List to appear no underlined.


Specifies that you want icon titles in File List to appear underlined only when you rest your mouse pointer on the title.


Specifies that you want icon titles in File List to appear underlined, just like links on a Web page. For this to apply, you must be sure that the Underline links setting in the browser is not set to Never.


Specifies that you want to single-click an item to select it, and double-click an item to open it. This is traditional Microsoft Windows model.


Specifies that you want to open VRML files in new VrmlPad window or not.


Select this checkbox to specify that File List on start-up set the current displayed directory to system default folder.


Select this checkbox to specify that File List on start-up set the current displayed directory to last opened file during your last VrmlPad session.


Select this checkbox to specify that File List on start-up set the current displayed directory to the specified folder.


Provides a space for you to specify the start-up folder.


Choose a start-up folder from the file browser.


Select this checkbox to specify that Resource View insert reference to the selected file as a full URL. Otherwise, relative URL will be inserted, if possible.


Provides a space for you to specify the full Internet address (URL) of a VRML file to download. Type the URL in the Open box. Use the drop-down list to select previous URLs. When you select an URL in this list, the URL is added in the Open box.


Lists all local dependencies of the document, recursively including a subdependencies of Inlines and EXTERNPROTOs (but not Anchors). For each dependency, the Document Weight displays:

•	An icon indicating the resource type.

•	The full file path to the resource.

•	The file size of the resource (for the VRML resources – uncompressed size).

•	The size of the VRML resource, being compressed with maximum compression level.

You can sort the list by clicking on the appropriate portion of the list box header. To reverse the sort order, click it again.


The size of the document, being saved with maximum compression level.


The total size of all local dependencies of the document, listed above. For the VRML dependencies, accounts the compressed size.


The total size of all local dependencies of the document plus the size of the document itself.


Estimated download time for the document and the listed dependencies using modem on 14.4 kbps.


Estimated download time for the document and the listed dependencies using modem on 28.8 kbps.


Estimated download time for the document and the listed dependencies using modem on 56.6 kbps.


Prints a VRML keywords using bold font style.


Prints a comments, using italic font style.


Prints the document, except numbers inside MFInt32, MFFloat, MFVec2f, MFVec3f, and MFRotation field values.


Prints an erroneous text, using strikeout font style.


Select this checkbox to compress the document before saving. Otherwise, the file will be saved as is, i.e. uncompressed. You can specify the compression level in the Default compression box on the General tab in the Options dialog box.


Lists unused node names, field and PROTO declarations, default field values. For each identifier, the Unused Identifiers displays:

•	An icon indicating the node type or field type and category.

•	The name of the identifier.

•	The name of the identifiers type.

•	The line number.

You can sort the list by clicking on the appropriate portion of the list box header. To reverse the sort order, click it again.


Choose a category of listed unused identifiers.


Jumps directly to the selected identifier. You can also double-click an identifier to see it in the Text editor, or select it and press ENTER.


Deletes all selected identifiers. This operation can be undone, but perform it with caution.


Provides a space for you to specify the minimum number of lines that can be folded. Type 0 lines to fold all nodes and prototype declarations.


Lists all standard node types and also icons for prototype declaration, prototype instance and VRML extension node. Select one or more types and click Add >> to add this types to the list of uninteresting nodes.


Lists unintresting node types. Select one or more node types and click << Remove to remove this types from the list of uninteresting nodes.


Adds selected node types to the list of uninteresting nodes.


Removes selected node types from the list of uninteresting nodes.


Select this checkbox to specify that all folded uninteresting nodes should be normally hidden after scene load.


Select the command for which you want to assign or remove a shortcut key assignment.


Press the key you want to assign to the selected command. If the key combination you press is already assigned to something else, VrmlPad shows the existing keyboard assignment in the Current Action box. To remove shortcut key assignment from the selected command, empty Press new shortcut key box by pressing Backspace button and click Assign.


Assigns the currently selected command to the keyboard shortcut that appears in the Press new shortcut key box. If the keyboard shortcut is currently assigned to a different command, pressing Assign removes this assignment and assigns it to the new command instead. To remove shortcut key assignment from the selected command, empty Press new shortcut key box by pressing Backspace button and click Assign.


Removes your custom shortcut key assignments and restores the original VrmlPad shortcut key assignments.


Provides a space for you to specify the name for the VRML viewer.


Select this checkbox to specify that the VRML viewer will be launched on shortcut key (F5 by default).


The control’s CLSID of the VRML viewer.


Provides a space for you to specify the width of the VRML viewer in pixels or percents.


Provides a space for you to specify the height of the VRML viewer in pixels or percents.


Lists all properties of the VRML viewer. Select a property from the list and type value in the Value box. Some of the properties of the Cortona VRML client:

ColliderMode – default collision detection mode: 0 – Auto, 1 – Always, 2 – Never

ConsoleMode – default console mode: 0 – Auto launch, 1 – Always hide, 2 – Always show

HeadLight – headlight on/off: false – off, true – on

NavigationBar – toolbar visibility: 0 – hidden, 1 – visible

NavigationMode – default navigation mode: 0 – None, 1 – Walk, 2 – Fly, 3 – Examine

ShowLogo – startup logo visibility: false – off, true – on

VRML_BACKGROUND_COLOR – default background color: #RRGGBB, where RR, GG, BB from 00 to FF.


Before previewing a document, saves it, if required, and browses the document file itself.


Before previewing a document, makes a temporary copy of the document in the same folder and browses the copy.


Before previewing a document, makes a temporary copy of the document in the Windows temporary folder, replaces all links to the document VRML resources, and browses the copy.


Chooses the best method of previewing. For example, if a document is unmodified since the last save, VrmlPad browses the document itself, without creating a temporary copy.


Previews a document using default Web-browser and default installed VRML viewer.


Previews a document using Microsoft Internet Explorer and one of the installed VRML viewers.


Lists all installed VRML viewers. Click Refresh button to autodetect newly installed VRML viewers. Select a viewer and click Params to change name, sizes, and properties of the VRML viewer.


Autodetects newly installed VRML viewers.


Specifies name, sizes, and properties of the selected VRML viewer.


Select this checkbox to show node typenames in addition to node DEF-names.


Select this checkbox to show actual field owner types for prototype instances.


Lists all possible route types.


Lists the color for the selected route type. Click the arrow to display the standard colors, Custom colors or Automatic. The Automatic setting indicates that the predefined color for the specified route type is to be used.


Provides space for you to select a PROTO-context (namespace) for the new route.


Provides space for you to type or select a node DEF-name for the source part of the route. If you have applied Start Route or Add Route command selected an unnamed node, you should type unique node name here.


Provides space for you to type or select a node DEF-name for the target part of the route. If you have applied Add Route command selected an unnamed node, you should type unique node name here.


Provides space for you to select an eventOut or exposedField for the source part of the route.


Provides space for you to select an eventIn or exposedField for the target part of the route. The list of possible field names includes only those that match to the selected source field.


Select this checkbox to add optional add_* or *_changed parts to source or/and target exposedFields.


If this checkbox is selected, the new route will be inserted near the caret position in the Text editor, if possible. Otherwise, the route will be inserted at the end of the document (or prototype declaration).


Indicates the variable or expression to display or modify.


Displays the expression from the Expessions text box under Name, and its value (or values for an array or object) under Value.


Calculates the value of an expression in the Expression text box, and display the result into the Current Value text box.


Adds the variable or expression to the Watch window. If the Watch window is not displayed, it also displays the window.


Generates full VRML text from the value of selected variable or expression.


Lists all VRML script modules, currently loaded into the Cortona VRML client, Script nodes, and vrmlscript functions.


Specifies the file path or Internet address (URL) of the HTML page with Cortona controls you want to debug.


Specifies whether to enter break mode before the first line of vrmlscript code is executed.


Click this to browse through folders to find the file you want.


Lists the backgroung color for node thumbnails in the Colors list. Click the arrow to display the standard colors, Custom colors or Automatic. The Automatic setting indicates that the system-defined background color is to be used.


Lists the headlight color for node thumbnails in the Colors list. Click the arrow to display the standard colors, Custom colors or Automatic. The Automatic setting indicates that the white (default) headlight color is to be used.


Select this checkbox to extend or change the set of node types to be thumbnailed. For example, if you want to thumbnail material nodes check Material checkbox.


Specifies thumbnail pictures size: 48 x 48, 64 x 64, 80 x 80 or custom.


Specifies direction of headlight. The default settings are (–25°, 10°).


Check this to show all thumbnail pictures in wireframe mode.


Check this to antialias thumbnail pictures. It performs more times to render but with better quality.


Check this to render textures with better quality.


Uncheck this to enable script-generated nodes to be properly thumbnailed.


Uncheck this to enable remote (internet-based) VRML resources (textures, inlines, EXTERNPROTOs) to be rendered.


Check this to disable texturing in node thumbnails.