Erreur Action Include : Lecture de la page inclue PageMenu non autorisée.
Erreur Action Include : Lecture de la page inclue DeepMatrixMenu non autorisée.
Prepare World for deepmatrix ... :http://deepmatrix.org/documentation/worlddeveloper.html
my solution for "viewpoint" is add this code "code init" (proto walker) to new vrml and vrmlpad
and change parameter background and viewpoint arrival
(Inlines, MovieTextures.. must be absolute urls, ...)
(nota : proto PrimeMOver is not necessary)
in line 35 change type : Walk ...examine ...ect
in line 428 init orientation your viempoint entry
in 429 init position entry
and Change set speed for 12 (for exemple )
The Background is in line 416
code init (proto walker) :
Viewpoint { position -3.36453 8.88994 -0.78024 orientation 0 -1 0 1.50157 fieldOfView 0.785398 description "entry" } PROTO Walker [ field SFBool bAnimVp FALSE eventIn SFInt32 set_navigation eventIn SFBool set_Wakeup eventIn MFFloat setBeamTo eventIn SFBool set_bind eventIn SFBool set_navbind eventIn SFBool vpbind eventIn SFVec3f set_viewpoint_position eventIn SFRotation set_viewpoint_orientation eventOut SFTime enterTime eventOut SFTime exitTime eventOut SFRotation orientation_changed eventOut SFVec3f position_changed eventOut SFBool isBound eventOut SFBool isVpBound eventOut SFRotation rotation_changed eventOut SFVec3f translation_changed eventOut SFBool isActive eventOut SFTime navCycleTime eventOut SFTime bindTime eventOut SFTime primer_time eventOut SFTime ghostBindTime eventOut SFBool ghostIsBound eventOut SFTime beamBindTime eventOut SFBool beamIsBound exposedField SFVec3f size 0 0 0 exposedField SFBool enabled TRUE exposedField SFVec3f center 0 0 0 exposedField SFTime cycleInterval .4 exposedField SFString protoName "Walker" exposedField SFFloat set_speed 3 exposedField MFString type [ "EXAMINE" "ANY" ] exposedField MFFloat avatarSize [ .25 1.6 .75 ] exposedField SFBool headlight TRUE exposedField SFFloat visibilityLimit 0 exposedField SFBool jump TRUE exposedField SFString description "Entry" exposedField SFRotation vporientation 0 1 0 0 exposedField SFVec3f vpposition 0 0 0 exposedField SFFloat fieldOfView .785 field SFBool bAnim FALSE eventIn SFBool setVpbind2 eventOut SFFloat navigation_info_changed exposedField SFBool collide TRUE exposedField SFBool masterCollide FALSE eventOut SFBool collision_state field SFBool bInitCollide TRUE ] { Group { children [ DEF WalkNav NavigationInfo { avatarSize IS avatarSize headlight IS headlight speed IS set_speed type IS type visibilityLimit IS visibilityLimit set_bind IS set_navbind isBound IS isBound } DEF Tms TimeSensor { cycleInterval IS cycleInterval } DEF Bb ProximitySensor { center IS center enabled IS enabled size IS size enterTime IS enterTime exitTime IS exitTime isActive IS isActive } DEF EntryVp Viewpoint { fieldOfView IS fieldOfView jump IS jump orientation IS vporientation position IS vpposition #set_bind IS vpbind bindTime IS bindTime isBound IS isVpBound } DEF GhostVp Viewpoint { bindTime IS ghostBindTime isBound IS ghostIsBound } DEF BeamVp Viewpoint { bindTime IS beamBindTime isBound IS beamIsBound } DEF BufferTms TimeSensor { loop TRUE } DEF NavTms TimeSensor { cycleTime IS navCycleTime } DEF WakeupTms TimeSensor { cycleInterval .8 } DEF WakeupOI OrientationInterpolator { key [ 0 .5 1 ] } DEF WakeupPI PositionInterpolator { key [ 0 .5 1 ] } DEF Sc Script { eventIn SFFloat speedUpdate eventIn SFBool set_headlightState eventIn SFBool set_collisionState eventIn SFBool set_masterCollisionState eventIn SFBool setVpbind2 IS setVpbind2 eventIn SFBool setVpbind IS vpbind eventIn SFBool reset_bool eventIn SFBool set_bufferActive eventIn SFBool set_Wakeup IS set_Wakeup eventIn SFTime set_enterTime eventIn SFBool set_navbind IS set_navbind eventIn SFInt32 set_navigation IS set_navigation eventIn MFFloat setBeamTo IS setBeamTo eventIn SFBool set_active2 eventIn SFBool set_bind IS set_bind eventIn SFBool set_active3 eventIn SFBool set_bool eventIn SFBool set_bool2 eventIn SFVec3f set_viewpoint_position IS set_viewpoint_position eventIn SFRotation set_viewpoint_orientation IS set_viewpoint_orientation eventIn SFRotation set_rotation eventIn SFVec3f set_vec3f eventOut SFBool collision_state IS collision_state eventOut SFTime primer_time IS primer_time eventOut SFVec3f translation_changed IS translation_changed eventOut SFRotation rotation_changed IS rotation_changed eventOut SFVec3f position_changed IS position_changed eventOut MFNode nodes_changed eventOut SFString message_changed eventOut SFFloat navigation_info_changed IS navigation_info_changed eventOut SFRotation orientation_changed IS orientation_changed directOutput TRUE field SFString sName "" field SFBool bAnim IS bAnim field SFBool bAvalon FALSE field SFBool bAnimVp IS bAnimVp #field SFNode MCol USE MCol field SFNode BufferTms USE BufferTms field SFNode WakeupOI USE WakeupOI field SFNode WakeupPI USE WakeupPI field SFNode WakeupTms USE WakeupTms field SFNode EntryVp USE EntryVp field SFNode WalkNav USE WalkNav field SFNode NavTms USE NavTms field SFNode GhostVp USE GhostVp field SFNode BeamVp USE BeamVp field SFNode Tms USE Tms field SFNode Bb USE Bb field SFNode Sc USE Sc field SFInt32 posct 0 field SFInt32 iHL 0 field SFInt32 iCL 0 field SFInt32 iMC 0 field SFBool bInitCollide IS bInitCollide field SFRotation rot 0 0 1 0 field SFRotation rot2 0 0 1 0 field SFRotation rot3 0 0 1 0 field SFRotation rot4 0 1 0 3.14 field SFRotation rot5 0 1 0 0 field SFVec3f pos 0 0 0 field SFVec3f pos2 0 0 0 field SFVec3f pos3 0 0 4 field SFVec3f posHUD 0 0 -4 field SFVec3f pos4 0 0 -5 field SFVec3f pos5 0 0 0 field MFString OrigNav [] field SFBool bGhostHUD FALSE field SFBool Bstate FALSE field SFBool Tstate FALSE field SFVec3f Halfway_pos 0 0 0 field SFRotation Halfway_rot 0 1 0 0 field SFBool Pstate FALSE field SFBool Rstate FALSE field SFString Navchange "" field MFString preNav [] field MFString navtypes [] url "javascript: function speedUpdate(v){ navigation_info_changed = v; } function set_masterCollisionState(v){ if(!v){ navigation_info_changed = -6.0; set_navigation(13); } else { navigation_info_changed = -5.0; set_navigation(12); } } function set_headlightState(v){ if(!v){ navigation_info_changed = -2.0; iHL = 9; } else { navigation_info_changed = -1.0; iHL = 8; } } function set_collisionState(v){ if(!MCol.collide){ if(!v){ navigation_info_changed = -4.0; set_navigation(11); } else { navigation_info_changed = -3.0; set_navigation(10); } } } function set_viewpoint_position(v){ position_changed = v; translation_changed = v; } function set_viewpoint_orientation(v){ orientation_changed = v; rotation_changed = v; } function setVpbind2(v){ if(v){ EntryVp.set_bind = true; }} function setVpbind(v){ if(v){ collision_state = bInitCollide; EntryVp.set_bind = true; EntryVp.position = WakeupPI.keyValue[2]; EntryVp.orientation = WakeupOI.keyValue[2]; EntryVp.set_bind = v; if(OrigNav[0]!='NONE'){ WalkNav.type = OrigNav; } if(bAnim){ WakeupTms.startTime = ts; } } } function set_bufferActive(v,ts){ if(v){ EntryVp.set_bind = true; if(!bAnimVp){ set_Wakeup(v,ts);} primer_time = ts; BufferTms.loop = false;} } function set_Wakeup(v,ts){ sName = Browser.getName(); if(sName=='Avalon'&&WalkNav!=null){ bAvalon = true; Browser.addRoute(Sc,'nodes_changed',WalkNav,'navigator'); nodes_changed = Browser.createVrmlFromString('SpaceNavigator {}'); Browser.addRoute(Sc,'message_changed',Sc.nodes_changed[0],'message'); } WakeupPI.keyValue[0] = EntryVp.position; Halfway_pos = EntryVp.position; Halfway_pos[1] += .3; WakeupPI.keyValue[1] = Halfway_pos; WakeupPI.keyValue[2] = EntryVp.position; WakeupOI.keyValue[0] = EntryVp.orientation ; OrigNav = WalkNav.type; Halfway_rot = EntryVp.orientation; Halfway_rot[3] += .1; WakeupOI.keyValue[1] = Halfway_rot; WakeupOI.keyValue[2] = EntryVp.orientation; WakeupTms.startTime = ts; } function set_navigation(v,ts){ if(v<7){ if(v==0){ Navchange = 'EXAMINE'; } if(v==1){ Navchange = 'WALK'; } if(v==2){ Navchange = 'FLY'; } if(v==3){ Navchange = 'FREEFLY'; } if(v==4){ Navchange = 'LOOKAT'; } if(v==5){ Navchange = 'PAN'; } if(v==6){ Navchange = 'SLIDE'; } navtypes = new MFString(Navchange); var iCt = 1; for( var a = 0; a<WalkNav.type.length; a +=1 ){ if(WalkNav.type[a]!=Navchange&&(WalkNav.type[a].indexOf(' ')==-1||WalkNav.type[a]=='')){ navtypes[iCt]= WalkNav.type[a]; iCt +=1; } } WalkNav.type = navtypes; WalkNav.set_bind = true; NavTms.startTime = ts; } else { if(bAvalon){ if(v==7){ message_changed = 'straightenUp'; } if((v==8||v==9)&&v!=iHL){ message_changed = 'toggleHeadlight'; iHL = v; } if((v==10||v==11)&&v!=iCL){ message_changed = 'toggleCollision';iCL = v; if(v==10){ collision_state = true; } if(v==11){ collision_state = false; } } if(v==12){ preNav = WalkNav.type; WalkNav.type = new MFString('WALK'); WalkNav.set_bind = true; NavTms.startTime = ts; if(iCL==11){ message_changed = 'toggleCollision'; collision_state = true; iCL = 10; } iMC = 12; } if(v==13){ if(iMC==12){ WalkNav.type = preNav; WalkNav.set_bind = true; NavTms.startTime = ts; } } } } } function setBeamTo(v,ts){ pos5 = new SFVec3f(v[0],v[1],v[2]); rot5 = new SFRotation(v[3],v[4],v[5],v[6]); var vm = new VrmlMatrix(); vm.setTransform(pos4,rot4); var vm2 = new VrmlMatrix(); vm2.setTransform(pos5, rot5 ); vm = vm.multRight(vm2); vm.getTransform(BeamVp.position,BeamVp.orientation); if( Math.abs(rot5[1])<.98 ){ set_navigation( 0 ); } else { set_navigation( 2 ); } BeamVp.set_bind = true; } function set_bind(v,ts){ Bstate = v; if(v){ var vm = new VrmlMatrix(); vm.setTransform(pos3,rot3); var vm2 = new VrmlMatrix(); vm2.setTransform(pos2, rot2 ); vm = vm.multRight(vm2); vm.getTransform(GhostVp.position,GhostVp.orientation); GhostVp.set_bind = true; } } function set_enterTime(v){ position_changed = pos2 = pos; orientation_changed = rot2 = rot; } function set_vec3f(v,ts){ translation_changed = pos = v; Pstate = true; if(Tstate==false){ Tms.startTime = ts;}} function set_rotation(v,ts){ rotation_changed = rot = v; Rstate = true; if(Tstate==false){ Tms.startTime = ts;}} function set_bool(v,ts){ Tstate = v; if(Tstate==true&&Rstate==true&&!Bstate){ rot2 = rot; orientation_changed = rot2; Rstate = false; } var fY = Math.abs(pos[1]-pos2[1]); var fX = Math.abs(pos[0]-pos2[0]); var fZ = Math.abs(pos[2]-pos2[2]); if(Tstate==true&&Pstate==true&&!Bstate&&(.005<fY||.005<fX||.005<fZ)){ pos2 = pos; position_changed = pos2; Pstate = false; } } function set_active3(v){ if(!v){ GhostVp.position = pos; GhostVp.orientation = rot; GhostVp.set_bind = true; }} " } ] } ROUTE WalkNav.speed TO Sc.speedUpdate ROUTE WalkNav.headlight TO Sc.set_headlightState ROUTE WakeupTms.fraction_changed TO WakeupOI.set_fraction ROUTE WakeupOI.value_changed TO EntryVp.set_orientation ROUTE WakeupTms.fraction_changed TO WakeupPI.set_fraction ROUTE WakeupPI.value_changed TO EntryVp.set_position ROUTE BufferTms.isActive TO Sc.set_bufferActive ROUTE Tms.isActive TO Sc.set_bool ROUTE Bb.orientation_changed TO Sc.set_rotation ROUTE Bb.position_changed TO Sc.set_vec3f } PROTO PrimeMover [ field SFTime rate .4 eventIn SFVec3f set_position2 eventIn SFRotation set_rotation2 eventIn SFVec3f set_start_position eventIn SFRotation set_start_rotation eventIn MFFloat set_BeamTo eventOut SFVec3f position_changed eventOut SFRotation orientation_changed eventOut SFVec3f position_changed2 eventOut SFRotation orientation_changed2 eventOut SFInt32 save_changed exposedField SFVec3f translation 0 0 0 exposedField SFRotation rotation 0 1 0 0 exposedField SFInt32 whichChoice -1 ] { } Group { children [ Fog { visibilityRange 400 } Background { skyAngle [ .75 1.2 1.7 1.8 1.9 2.1 2.75 3.14 ] skyColor [ 0 0 0 .1 .1 .2 .3 .2 .3 .5 .1 .2 .8 0 0 .7 .4 0 .6 .3 0 .2 .7 0 1 1 1 ] } DEF Walk Walker { size 1e5 1e5 1e5 set_speed 3 jump FALSE vporientation 0 1 0 1.57 vpposition 33 .4 3 } PrimeMover { } ] }
http://costoso.net/nano_deepmatrix_ver1_1/nanob.wrl