Event Utilities & Scripting

Σχετικά έγγραφα
Points, Lines, Polygons

User Interactivity Nodes

Recommended Resources

ΙΑ ΡΑΣΤΙΚΟΤΗΤΑ Σε ΤΡΙΣ ΙΑΣΤΑΤΟΥΣ ΕΙΚΟΝΙΚΟΥΣ ΚΟΣΜΟΥΣ ΕΠΕΚΤΑΣΕΙΣ ΓΛΩΣΣΑΣ STEDEL

Γραφικά με Υπολογιστές. Εισαγωγή στη VRML

ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ΕΦΑΡΜΟΓΩΝ ΕΙΚΟΝΙΚΗΣ ΠΡΑΓΜΑΤΙΚΟΤΗΤΑΣ

Γραφικά με Υπολογιστές. Κίνηση - Αλληλεπίδραση

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 133: ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΡΓΑΣΤΗΡΙΟ 3 Javadoc Tutorial

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

Κατανεμημένα Συστήματα. Javascript LCR example

Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής

Γραφικά µε Υπολογιστές. Μετασχηµατισµοί Σύνθετη Γεωµετρία

EPL 603 TOPICS IN SOFTWARE ENGINEERING. Lab 5: Component Adaptation Environment (COPE)

Οπτικοποίηση με Prefuse. Δομή / Βασικά Χαρακτηριστικά / Παράδειγμα

ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΟΛΥΜΕΣΩΝ

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Hancock. Ζωγραφάκης Ιωάννης Εξαρχάκος Νικόλαος. ΕΠΛ 428 Προγραμματισμός Συστημάτων

SOAP API. Table of Contents

Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών

JAVASCRIPT 1. Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Π. Αγγελάτος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Dynamic types, Lambda calculus machines Section and Practice Problems Apr 21 22, 2016

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Βάσεις Δεδομένων (4 ο εξάμηνο) Εργαστήριο MySQL #2

ΕΠΛ 012. JavaScripts

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017

DOM. Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Π. Αγγελάτος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

ΙΚΤΥΩΤΟ ΜΟΝΤΕΛΟ (Network Model) Μαθ. # 15

ΓΛΩΣΣΙΚΗ ΤΕΧΝΟΛΟΓΙΑ. Python & NLTK: Εισαγωγή

Φροντιςτήριο. Linked-List

Αρχές Τεχνολογίας Λογισμικού Εργαστήριο

Φροντιστήριο 4 Σκελετοί Λύσεων

Σημασιολογικός Ιστός (Semantic Web) - XML

Δομές Δεδομένων - Εργαστήριο 2. Λίστες

Αποθηκευμένες Διαδικασίες Stored Routines (Procedures & Functions)

Προσομείωση ασύρματων δικτύων με τη χρήση του OPNET Modeler

Στο εργαστήριο θα μελετηθούν: Διδάσκων: Γιώργος Χατζηπολλάς. Εργαστήριο 2: Εργαλεία Συστήματος UNIX. Ομάδες για παρουσίαση

Εισαγωγή στην πληροφορική

Γλωσσική Τεχνολογία. HTML/XML Processing HTTP Services

ΚΕΦΑΛΑΙΟ Web Services

Εισαγωγή στη Βιοπληροφορική

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ I

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές

Elements of Information Theory

MySQL + Γλώσσα Προγραμματισμού. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Μηχανή αναζήτησης βασισμένη σε AJAX και Soundex. Πτυχιακή Εργασία

ιαδικτυακές Εφαρµογές

Εισαγωγή στη Fortran. Μάθημα 3 ο. Ελευθερία Λιούκα

CYTA Cloud Server Set Up Instructions

(Διαφάνειες Νίκου Βιδάκη)

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Σύνοψη Προηγούμενου. Λίστες (Lists) Συνδεδεμένες Λίστες: Εισαγωγή (1/2) Συνδεδεμένες Λίστες. Ορέστης Τελέλης

(C) 2010 Pearson Education, Inc. All rights reserved.

Γλωσσική Τεχνολογία. Εισαγωγικό Φροντιστήριο

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

ηµιουργία µετάδοση και ανακατασκευή τρισδιάστατων γραφικών στο διαδίκτυο µε χρήση JAVA και

Αντικειμενοστρεφής Προγραμματισμός

02 Αντικειμενοστρεφής Προγραμματισμός

Δείκτες σε συναρτήσεις. Προγραμματισμός II 1

How to register an account with the Hellenic Community of Sheffield.

Ανάπτυξη Οντολογικής Γνώσης για Τεκμηρίωση Οπτικοακουστικού Περιεχομένου ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

Bizagi Modeler: Συνοπτικός Οδηγός

Εργαστήριο 4: Υλοποίηση Αφηρημένου Τύπου Δεδομένων: Ταξινομημένη Λίστα

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript

ΠΕΡΙΕΧΟΜΕΝΑ ΕΝΟΤΗΤΑ 1 Η : ΕΙΣΑΓΩΓΗ ΣΤΗ VRML...6 ΕΝΟΤΗΤΑ 2 Η : ΑΠΛΗ ΓΕΩΜΕΤΡΙΑ Εγχειρίδιο της VRML

Ψηφιακή ανάπτυξη. Course Unit #1 : Κατανοώντας τις βασικές σύγχρονες ψηφιακές αρχές Thematic Unit #1 : Τεχνολογίες Web και CMS

Logout Exit Print. Form Description Order Date Page Scanned

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006

Διάλεξη 13: Δομές Δεδομένων ΙΙ (Ταξινομημένες Λίστες)

Στο εστιατόριο «ToDokimasesPrinToBgaleisStonKosmo?» έξω από τους δακτυλίους του Κρόνου, οι παραγγελίες γίνονται ηλεκτρονικά.

Εισαγωγικό Φροντιστήριο

Minimum Spanning Tree: Prim's Algorithm

Ασφάλεια, Διαθεσιμότητα και Ταχύτητα για τις Web Εφαρμογές

Η γλώσσα προγραμματισμού C

Network Algorithms and Complexity Παραλληλοποίηση του αλγορίθμου του Prim. Αικατερίνη Κούκιου

Θέματα Προγραμματισμού Διαδικτύου ~ PHP ~

Form Description Order Date Page Number. HE3 Particulars in relation to the first directors and secretary

The Simply Typed Lambda Calculus

ΑΝΑΠΤΥΞΗ ΠΑΙΧΝΙΔΙΟΥ ΣΟΒΑΡΟΥ ΣΚΟΠΟΥ ΓΙΑ ΤΗΝ ΕΚΜΑΘΗΣΗ ΕΝΝΟΙΩΝ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΣΕ JAVA

Διαχείριση Περιεχομένου Παγκόσμιου Ιστού και Γλωσσικά Εργαλεία ΕΙΣΑΓΩΓΙΚΟ ΦΡΟΝΤΙΣΤΗΡΙΟ

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

NMBTC.COM /

5. Επερώτηση XML Εγγράφων: Εισαγωγή στη Γλώσσα XQuery

EPL660: Information Retrieval and Search Engines Lab 5

Εισαγωγή στον Προγραμματισμό Python Μάθημα 4: Συναρτήσεις (functions) και δομοστοιχεία (modules) στην Python

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 11/3/2006

Ενότητα 2 Εργαλεία για την αναζήτηση εργασίας: Το Βιογραφικό Σημείωμα

EE512: Error Control Coding

Εργαστήριο #12. Βήμα 1 ο. Βήμα 2 ο. Βήμα 3 ο. Βήμα 4 ο.

Εργαστήριο 9. Styling with Javascript

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2)

ΝΤUA. Τεχνολογία Πολυμέσων

Chap. 6 Pushdown Automata

Αντικειµενοστρεφής Προγραµµατισµός

derivation of the Laplacian from rectangular to spherical coordinates

Διαχείριση Έργων Πληροφορικής Εργαστήριο

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ


Εικονική Αναπαράσταση Νοηµατικής Γλώσσας στο ιαδίκτυο

Transcript:

Event Utilities & Scripting Abstract node types X3DSequencerNode Nodes BooleanFilter BooleanSequencer BooleanToggle BooleanTrigger IntegerSequencer IntegerTrigger TimeTrigger Script

X3DSequencerNode type SFBool inputonly next Interactive SFBool inputonly previous Interactive SFFloat inputonly set_fraction (-, ) Interactive MFFloat inputoutput key (-, ) Interactive MF[type] inputoutput keyvalue [Type Specific] Interactive SF[type] or MF[type] outputonly value_changed [Type Specific] Interactive SFNode inputoutput metadata NULL [X3DMetadataObject] Core

BooleanFilter node SFBool inputonly set_boolean Interactive SFBool outputonly inputtrue Interactive SFBool outputonly inputfalse Interactive SFBool outputonly inputnegate Interactive SFNode inputoutput metadata NULL [X3DMetadataObject] Core <BooleanFilter DEF= "MyBooleanFilter" />

BooleanSequencer Node SFBool inputonly next Interactive SFBool inputonly previous Interactive SFFloat inputonly set_fraction (-, ) Interactive MFFloat inputoutput key [ ] (-, ) Interactive MFBool inputoutput keyvalue [ ] Interactive SFBool outputonly value_changed Interactive SFNode inputoutput metadata NULL [X3DMetadataObject] Core <BooleanSequencer DEF= "MyBooleanSequencer" />

BooleanToggle Node SFBool inputonly set_boolean Interactive SFBool inputoutput toggle false Interactive SFNode inputoutput metadata NULL [X3DMetadataObject] Core <BooleanToggle DEF= "MyBooleanToggle" />

BooleanTrigger Node SFTime inputonly set_triggertime Interactive SFBool outputonly triggertrue Interactive SFNode inputoutput metadata NULL [X3DMetadataObject] Core <BooleanTrigger DEF= "MyBooleanTrigger" />

IntegerSequencer Node SFBool inputonly next Interactive SFBool inputonly previous Interactive SFFloat inputonly set_fraction (-, ) Interactive MFFloat inputoutput key [ ] (-, ) Interactive MFInt32 inputoutput keyvalue [ ] (-, ) Interactive SFInt32 outputonly value_changed Interactive SFNode inputoutput metadata NULL [X3DMetadataObject] Core <IntegerSequencer DEF= "MyIntegerSequencer" />

IntegerTrigger Node SFBool inputonly set_boolean Interactive SFInt32 inputoutput integerkey -1 (-, ) Interactive SFInt32 outputonly triggervalue Interactive SFNode inputoutput metadata NULL [X3DMetadataObject] Core <IntegerTrigger DEF= "MyIntegerTrigger" />

TimeTrigger Node SFBool inputonly set_boolean Interactive SFTime outputonly triggertime Interactive SFNode inputoutput metadata NULL [X3DMetadataObject] Core <TimeTrigger DEF= "MyTimeTrigger" />

Script node MFString inputoutput url [] Immersive SFBool initializeonly directoutput false Immersive SFBool initializeonly mustevaluate false Immersive SFNode inputoutput metadata NULL [X3DMetadataObject] Core Συν, όσα ακόμα πεδία θέλουμε να ορίσουμε: [fieldtype] initializeonly [fieldname] [initialvalue] [datatype defaults] Immersive [fieldtype] inputoutput [fieldname] [initialvalue] [datatype defaults] Immersive [fieldtype] inputonly [fieldname] Immersive [fieldtype] outputonly [fieldname] Immersive

Script node <Script DEF="MyScript" directoutput="false" mustevaluate="false" url=' "externalfile.js", "ecmascript: "'> <field name="field1" type="sfstring" accesstype="initializeonly" value="test string"/> <field name="field2" type="mffloat" accesstype="inputoutput" value="3.14159, 2.718,.43"/> <field name="field3" type="sftime" accesstype="inputonly"/> <field name="field4" type="sfint32" accesstype="outputonly"/> </Script>

Script node Ένας κόμβος Script μας επιτρέπει να εισάγουμε κώδικα σε μια σκηνή X3D Υποστηρίζονται ECMAScript (JavaScript) και Java Ένας κόμβος Script υπάγεται στη σκηνή και ακολουθεί τη φιλοσοφία ενός κόμβου X3D Περιλαμβάνει πεδία με συγκεκριμένο όνομα, τύπο και accesstype Τα πεδία αυτά είναι τα 4 προκαθορισμένα του πίνακα, συν όποια πεδία ορίζει ο κώδικας του Script. Προορισμός ενός κόμβου Script είναι να λαμβάνει εισερχόμενα Events και -όπου το επιλέξουμε-, να επιστρέφει το επιθυμητό Output.

Script node Ο κώδικάς εντάσσεται είτε ως link σε αρχείο στο πεδίο url (αρχεία.js,.class, ενίοτε.jar), είτε ενσωματωμένο στο ίδιο πεδίο, αρχίζοντας με τη δεσμευμένη λέξη "ecmascript: " (κατάλληλο για VRML) Επειδή στην XML αντιμετωπίζουμε επιπλέον περιορισμούς (αγνόηση αλλαγών γραμμής, δέσμευση των συμβόλων <, > κλπ), μια καλύτερη λύση είναι ένα μπλοκ CDATA Μας επιτρέπει να αγνοήσουμε τους κανόνες της XML ώστε να συντάξουμε τον κώδικα όπως θέλουμε

CDATA Text Block for Script code

Script Node Κόμβοι Script που καλούν ευθέως άλλους κόμβους (πεδία SFNode και MFNode) και που έχουν directoutput=true μπορούν να στέλνουν και να λαμβάνουν συμβάντα από τους κόμβους αυτούς χωρίς ROUTEs

Script Node optional methods initialize() shutdown() prepareevents() eventsprocessed()

Functions Supported by the Browser Interface Function Name Returns Browser.getName Name of the X3D browser. Browser.getVersion Provides the version identifier of the X3D browser. Provides the navigation speed of the current world, obtained from currently Browser.getCurrentSpeed bound NavigationInfo node, in meters/second for the coordinate system of the currently bound Viewpoint. Provides the current display update rate in Browser.getCurrentFrameRate frames/second. Lists all profile names supported by the Browser.getSupportedProfiles browser, for example "Interactive" "Immersive" "Full" Browser.getSupportedComponents Lists all supported component names. Creates a new, empty scene that Browser.createScene conforms to the provided profile and component declarations.

Function Name Browser.replaceWorld Browser.importDocument Browser.loadURL Browser.setDescription Browser.createX3DFromString Browser.createX3DFromStream Browser.createX3DFromURL Browser.getRenderingProperties Browser.getBrowserProperties Returns Replaces the current world with the world provided as a parameter. Imports a W3C Document Object Model (DOM) document, or document fragment, and converts it to an X3D scene. Inserts the content identified by the url value into the current world. Sets the description title in the browser title bar, if available. Creates X3D nodes from a string input. Creates X3D nodes from a network stream input. Creates X3D nodes from a file referred to by an url. Provides a list of the current hardwarerendering capabilities available to the browser. Provides a list of the current functional capabilities provided by the browser.

Function Name Browser.changeViewpoint Browser.print Browser.dispose Browser.dispose Returns Changes the currently bound viewpoint based on input value Next, Previous, First, or Last. Prints a string message to the browser's console. Indicates that the client is about to exit, and the browser can dispose any consumed resources. Indicates that the client is about to exit, and the browser can dispose any consumed resources. Further reading: ECMAScript language bindings: http://www.web3d.org/files/specifications/19777-1/v3.0/index.html Java language bindings: http://www.web3d.org/files/specifications/19777-2/v3.0/index.html A short Scene Access Interface tutorial: http://www.xj3d.org/tutorials/general_sai.html

<TouchSensor DEF='ClickTextToTest' description='click text to test'/> <Transform DEF='TextPos'> <Shape> <Text DEF='Message'/> </Shape> </Transform> <Script DEF='InterfaceScriptNode' directoutput='true'> <!-- No default values are allowed for eventin or eventout. --> <field accesstype='inputonly' name='starttime' type='sftime'/> <field accesstype='initializeonly' name='scenetext' type='sfnode'> <Text USE='Message'/> </field> <field accesstype='initializeonly' name='scenetransform' type='sfnode'> <Transform USE='TextPos'/> </field> <![CDATA[ecmascript: function initialize () { mode = 1; scenetext.string = new MFString ('A', 'line'); scenetransform.translation = new SFVec3f ( 0, 3, 0 ); } function starttime () { mode = (mode + 1) % 2; switch (mode) { case 0: // pre-initialize error messsage scenetext.string = new MFString ('Another', 'line'); scenetransform.translation = new SFVec3f ( 0, 1, 0 ); break; case 1: // post-initialize ready-to-click message initialize (); break; } } ]]> </Script> <ROUTE fromfield='touchtime' fromnode='clicktexttotest' tofield='starttime' tonode='interfacescriptnode'/>

(Απλοποιημένη εκδοχή του παραδείγματος ScriptNodeFieldControl-EcmaScript.x3d)

Script Node scene control

Script Programming Notes Κάθε εισερχόμενο event έχει δύο ορίσματα, το value και το timestamp Πολλαπλά events μπορούν να έχουν το ίδιο timestamp Διανύσματα και πίνακες (όπως το SFVec3F) είναι προσβάσιμα μέσω των [ ]. Π.χ., value[0]. Τα Elements που είναι MF αντιμετωπίζονται ως πίνακες. Value[0][2] είναι το τρίτο στοιχείο του πρώτου πεδίου. Τα πεδία initializeonly και inputoutput μπορούν να χρησιμοποιηθούν ως "μνήμη" της σκηνής, μεταξύ δυο κλήσεων του script

X3D execution model 1. Υπολογισμός θέσης και προσανατολισμού κάμερας 2. Καταγραφή του output αισθητήρων και άλλων παραγωγών events 3. Μετάδοση των events μέσω ROUTES, τροποποίηση των αντίστοιχων πεδίων. 4. Επανάληψη των βημάτων 2 και 3 έως ότου να μην εκκρεμούν άλλα events 5. Rendering του επόμενου καρέ 6. Αντικατάσταση του προηγούμενου καρέ από το νέο (buffering αν προβλέπεται) 7. Ανανέωση του ρολογιού ώστε να συμπίπτει με αυτό του συστήματος 8. Επιστροφή στο βήμα 1

Geometry 2D Nodes Nodes Arc2D ArcClose2D Circle2D Disk2D Polyline2D Polypoint2D Rectangle2D TriangleSet2D

Adding Geometry2D Component Support <X3D version =''3.0'' profile = ''Immersive''> <head> <component name = ''Geometry2D'' level = ''2''/> </head> <Scene/> </X3D> Εναλλακτικά, μπορούμε απλά να επιλέξουμε το full profile. Για όλες τις περιγραφές πεδίων αυτού του κεφαλαίου, το Profile = Im+G2D:2/Full θα σημαίνει πως το πεδίο βρίσκεται είτε στο Immersive profile, με την προσθήκη του Geometry2D Level 2 component, είτε στο Full profile.

Arc2D Node SFFloat initializeonly startangle 0 [ 2π,+2π] Im+G2D:2/Full SFFloat initializeonly endangle π/2 [ 2π,+2π] Im+G2D:2/Full SFFloat initializeonly radius 1 (0, ) Im+G2D:2/Full SFNode inputoutput metadata NULL [X3DMetadataObject] Core <Arc2D DEF="MyArc2DNode" startangle=".5" endangle="1.5" radius=".75"/>

"CHORD" ArcClose2D Node SFFloat initializeonly startangle 0 [ 2π,2π] Im+G2D:2/Full SFFloat initializeonly endangle π/2 [ 2π,2π] Im+G2D:2/Full SFFloat initializeonly radius 1 (0, ) Im+G2D:2/Full SFBool initializeonly solid FALSE Immersive SFString initializeonly closuretype ''PIE'' [''PIE'' ''CHORD''] Immersive SFNode inputoutput metadata NULL [X3DMetadataObject] Core <ArcClose2D DEF="MyArcClose2DNode" startangle=".5" endangle="1.5" radius=".75" solid="true"/> "PIE"

Circle2D Node SFFloat initializeonly radius 1 (0, ) Im+G2D:2/Full SFNode inputoutput metadata NULL [X3DMetadataObject] Core <Circle2D DEF=''MyCircle2DNode'' radius=''.75''/>

Disk2D Node SFFloat initializeonly innerradius 0 [0, ) Im+G2D:2/Full SFFloat initializeonly outerradius 1 (0, ) Im+G2D:2/Full SFBool initializeonly solid FALSE Immersive SFNode inputoutput metadata NULL [X3DMetadataObject] Core <Disk2D DEF="MyDisk2DNode" innerradius=".75" outerradius="2.1"/>

Polyline2D Node MFVec2f initializeonly linesegments [] (, ) Im+G2D:2/Full SFNode inputoutput metadata NULL [X3DMetadataObject] Core <Polyline2D DEF="MyPolyline2DNode" linesegments="0 0, 1 2, 2 8, 5 3, 4 0"/>

Polypoint2D Node MFVec2f inputoutput point [] (, ) Im+G2D:2/Full SFNode inputoutput metadata NULL [X3DMetadataObject] Core <Polypoint2D DEF="MyPolypoint2DNode" point="0 0, 1 2, 2 8, 5 3, 4 0"/>

Rectangle2D Node MFVec2f initializeonly size 2 2 (0, ) Im+G2D:2/Full SFBool initializeonly solid FALSE Immersive SFNode inputoutput metadata NULL [X3DMetadataObject] Core <Rectangle2D DEF="MyRectangle2DNode" size="1 3" Solid="false"/>

TriangleSet2D Node MFVec2f inputoutput vertices [] (, ) Im+G2D:2/Full SFBool initializeonly solid FALSE Immersive SFNode inputoutput metadata NULL [X3DMetadataObject] Core <TriangleSet2D DEF="MyTriangleSet2DNode" vertices="0 0 1 1 2 0 1 1 4 2 2 0" solid="true"/>