VRML2 File Format
==================


VRML2 IndexFaceSet
-------------------

* http://accad.osu.edu/~pgerstma/class/vnv/resources/info/AnnotatedVrmlRef/ch2-26.htm#2.6.3
* http://cs.iupui.edu/~aharris/mm/vrml4/vrml4.html

meaning of `solid FALSE`
~~~~~~~~~~~~~~~~~~~~~~~~~

* http://stackoverflow.com/questions/5130443/vrml-indexed-faceset

*Faces are visible from both sides*, so it doesn't matter if they were defined
clockwise or counter-clockwise. That's the easy hack, but it doubles the number
of polygons that the viewer renders internally.

* http://www.lighthouse3d.com/vrml/tutorial/index.shtml?indfs

The solid field determines if the browser should draw both sides of a face or
just the front side. VRML assumes by default, solid is TRUE that the faces in
an IndexedFaceSet form a solid shape. In this case there is no need to draw the
back sides of each face. If solid is FALSE then the browser will draw both
sides of each face.



VRML2 .wrl inspection
-----------------------

Succeeded to create a .wrl::

    [blyth@belle7 20130820-1318]$ du -hs g4_00.wrl 
    82M     g4_00.wrl


::

    [blyth@belle7 20130820-1318]$ head -50 g4_00.wrl 
    #VRML V2.0 utf8
    # Generated by VRML 2.0 driver of GEANT4


    #---------- CAMERA
    Viewpoint {
            position 0 0 111042
    }

    #---------- SOLID: /dd/Structure/Sites/db-rock.1000
            Shape {
                    appearance Appearance {
                            material Material {
                                    diffuseColor 1 1 1
                                    transparency 0.7
                            }
                    }
                    geometry IndexedFaceSet {
                            coord Coordinate {
                                    point [
                                            18049.9 -809521 22890,
                                            -9108.86 -767540 22890,
                                            -51089.9 -794699 22890,
                                            -23931.1 -836680 22890,
                                            -23931.1 -836680 -15104.2,
                                            18049.9 -809521 -15104.2,
                                            -51089.9 -794699 -15104.2,
                                            -9108.86 -767540 -15104.2,
                                    ]
                            }
                            coordIndex [
                                    0, 1, 2, 3, -1,
                                    4, 5, 0, -1,
                                    0, 3, 4, -1,
                                    6, 4, 3, -1,
                                    3, 2, 6, -1,
                                    7, 6, 2, -1,
                                    2, 1, 7, -1,
                                    5, 7, 1, -1,
                                    1, 0, 5, -1,
                                    5, 4, 6, -1,
                                    6, 7, 5, -1,
                            ]
                            solid FALSE
                    }
            }
    #---------- SOLID: /dd/Geometry/Sites/lvNearSiteRock#pvNearHallTop.1000
            Shape {
                    appearance Appearance {
                            material Material {

With 12k solids::

    ...
    #---------- SOLID: /dd/Geometry/Pool/lvNearPoolDead#pvNearADE1DeadLegs#pvLegInDead:2#pvLegInDeadUnit.2
    #---------- SOLID: /dd/Geometry/Pool/lvNearPoolDead#pvNearADE1DeadLegs#pvLegInDead:3#pvLegInDeadUnit.3
    #---------- SOLID: /dd/Geometry/Pool/lvNearPoolDead#pvNearADE1DeadLegs#pvLegInDead:4#pvLegInDeadUnit.4
    #---------- SOLID: /dd/Geometry/Pool/lvNearPoolDead#pvNearADE2DeadLegs#pvLegInDead:1#pvLegInDeadUnit.1
    #---------- SOLID: /dd/Geometry/Pool/lvNearPoolDead#pvNearADE2DeadLegs#pvLegInDead:2#pvLegInDeadUnit.2
    #---------- SOLID: /dd/Geometry/Pool/lvNearPoolDead#pvNearADE2DeadLegs#pvLegInDead:3#pvLegInDeadUnit.3
    #---------- SOLID: /dd/Geometry/Pool/lvNearPoolDead#pvNearADE2DeadLegs#pvLegInDead:4#pvLegInDeadUnit.4
    #---------- SOLID: /dd/Geometry/Sites/lvNearHallBot#pvNearHallRadSlabs#pvNearHallRadSlab1.1001
    #---------- SOLID: /dd/Geometry/Sites/lvNearHallBot#pvNearHallRadSlabs#pvNearHallRadSlab2.1002
    #---------- SOLID: /dd/Geometry/Sites/lvNearHallBot#pvNearHallRadSlabs#pvNearHallRadSlab3.1003
    #---------- SOLID: /dd/Geometry/Sites/lvNearHallBot#pvNearHallRadSlabs#pvNearHallRadSlab4.1004
    #---------- SOLID: /dd/Geometry/Sites/lvNearHallBot#pvNearHallRadSlabs#pvNearHallRadSlab5.1005
    #---------- SOLID: /dd/Geometry/Sites/lvNearHallBot#pvNearHallRadSlabs#pvNearHallRadSlab6.1006
    #---------- SOLID: /dd/Geometry/Sites/lvNearHallBot#pvNearHallRadSlabs#pvNearHallRadSlab7.1007
    #---------- SOLID: /dd/Geometry/Sites/lvNearHallBot#pvNearHallRadSlabs#pvNearHallRadSlab8.1008
    #---------- SOLID: /dd/Geometry/Sites/lvNearHallBot#pvNearHallRadSlabs#pvNearHallRadSlab9.1009
    [blyth@belle7 20130820-1318]$ grep SOLID g4_00.wrl  | wc -l
    12229