PROTO


( Hommage à Kekenken )

Savez-vous planter les choux ?
A la mode , à la mode ...de Kekenken ?!

C'est un excellent et très amusant programmeur en VRML

http://www.ceres.dti.ne.jp/~kekenken/main/index.html

Le script décrit ci-dessous permet de "planter" tout objet qui est défini dans le PROTO :

proto_carots.wrl

Ici c'est une  carotte , mais on peut mettre les shapes que l'on veut .

Le script ira chercher le PROTO pour pouvoir les planter à chaque click sur le sol :

DEF AddSheep-Sc Script {
    eventIn SFVec3f set_hitPoint
    eventIn SFTime touchTime
    eventIn MFNode set_sheeps
    field SFNode SheepsGp USE Sheeps-Gp          
    field MFString sheepUrl "proto_carots.wrl"    
    field SFVec3f hitPoint 0 0 0                  
    directOutput TRUE
    url "javascript:
        function set_hitPoint (vec) {
            hitPoint = vec;
        }
        function touchTime () {
            Browser.createVrmlFromURL( sheepUrl, SheepsGp, 'addChildren' );
        }
        function set_sheeps (sp) {
            var id = sp.length - 1;
            var packet = new MFFloat();
            packet[0] = id;
            packet[1] = hitPoint.x;
            packet[2] = 0;
            packet[3] = hitPoint.z;
            sp[id].packet_in = packet;
            for ( var i = 0; i < id; i++ ) {
                Browser.addRoute( sp[i], 'packet_out', sp[id], 'packet_in' );
                Browser.addRoute( sp[id], 'packet_out', sp[i], 'packet_in' );
            }
        }
    "
}
ROUTE ThS.hitPoint_changed TO AddSheep-Sc.set_hitPoint
ROUTE ThS.touchTime TO AddSheep-Sc.touchTime

( copyright Kekenken )

Pourquoi "sheeps" et non pas "carottes" ?

Parce que j'ai  simplifié le script original  qui  non seulement jouait à saute-mouton ,
mais en plus avec les points de vue *** et les animations :

http://www.ceres.dti.ne.jp/~kekenken/main/3d/script/06_genenode/3/sheep.wrl

*** clickez sur une carotte ou un mouton , et vous verrez :)

(  Je m'étais amusé déjà ici :

http://dumenieu.free.fr/vrml/pierray/pierraycarots.wrl
http://dumenieu.free.fr/vrml/pierray/pierrayinline.wrl

http://dumenieu.free.fr/vrml/pierray/pierrayinlineetmonster.wrl

_________________________________________________________________________

Vrml............................

artvrml/wrl/kekenkencarots.wrl

______________________________________________________________________

Sommaire...................

Intro

______________________________________________________________________

PROTO


( Homage to Kekenken ) 

A script to add  dynamicaly objects in your  world :

From Kekenken an  excellent and funny  programer in VRML

http://www.ceres.dti.ne.jp/~kekenken/main/index.html

Add the object defined in the  PROTO :

proto_carots.wrl

Here it is a  carot , but you could add what you want  .

DEF AddSheep-Sc Script {
    eventIn SFVec3f set_hitPoint
    eventIn SFTime touchTime
    eventIn MFNode set_sheeps
    field SFNode SheepsGp USE Sheeps-Gp          
    field MFString sheepUrl "proto_carots.wrl"    
    field SFVec3f hitPoint 0 0 0                  
    directOutput TRUE
    url "javascript:
        function set_hitPoint (vec) {
            hitPoint = vec;
        }
        function touchTime () {
            Browser.createVrmlFromURL( sheepUrl, SheepsGp, 'addChildren' );
        }
        function set_sheeps (sp) {
            var id = sp.length - 1;
            var packet = new MFFloat();
            packet[0] = id;
            packet[1] = hitPoint.x;
            packet[2] = 0;
            packet[3] = hitPoint.z;
            sp[id].packet_in = packet;
            for ( var i = 0; i < id; i++ ) {
                Browser.addRoute( sp[i], 'packet_out', sp[id], 'packet_in' );
                Browser.addRoute( sp[id], 'packet_out', sp[i], 'packet_in' );
            }
        }
    "
}
ROUTE ThS.hitPoint_changed TO AddSheep-Sc.set_hitPoint
ROUTE ThS.touchTime TO AddSheep-Sc.touchTime

( copyright Kekenken )

Here the original :

http://www.ceres.dti.ne.jp/~kekenken/main/3d/script/06_genenode/3/sheep.wrl

( I played months ago with that :

http://dumenieu.free.fr/vrml/pierray/pierraycarots.wrl

http://dumenieu.free.fr/vrml/pierray/pierrayinline.wrl

http://dumenieu.free.fr/vrml/pierray/pierrayinlineetmonster.wrl

_________________________________________________________________________

Vrml...........................

______________________________________________________________________

Contents....................

Intro

_______________________________________________________________________