Beaming Scene Service  2.0
RakNet wrapper for managing data communications between multiple Beaming clients
sampleXVRclient/FirstCharacter.s3d
Go to the documentation of this file.
00001 /* Include s3d symbols */
00002 #include <Script3d.h>
00003 
00004 /* Set global scene parameters */
00005 SET SCENE_FOV  = 60;
00006 SET SCENE_NEAR = 0.01;
00007 SET SCENE_FAR  = 1000;//light
00008 
00009 //#define DQUAT_TRANSF_XVRSHADER
00010 //#define VA_TRANS
00011 #define TM_TRANSF_XVRSHADER
00012 
00013 #include "common.s3d"
00014 #include "KeyBoardManager.s3d"
00015 #include "avatars.s3d"
00016 
00017 // TODO: put your global variables here
00018 
00019 
00020 
00021 /* Function declarations */
00022 //function CameraMoveMouse();
00023 //function DrawGrid(col, size);
00024 
00025 var KeyManager=CVmKeyBoardManager();
00026 var morphval=vector(10);
00027 var normalinfl=0.0;
00028 var wasExecuting=false;
00029 var starTime=0;
00030 var endTime=0;
00031 var startIt=false;
00032 
00033 function OnDownload()
00034 {
00035         // TODO: download your resources here
00036         // E.g.: FileDownload("resource.ext");
00037 }
00038 
00039 function incMorphVal(i,x){
00040         morphval[i]+=x;
00041 }
00042 
00043 function incNormInfl(x){
00044         normalinfl+=x;
00045 }
00046 
00047 function exeMorph(aid){
00048         Avatars.exeMorph(aid,0,2.0,0.0);
00049 }
00050 
00051 function startFlag(){
00052         startIt=true;
00053         OutPutLn("Started");
00054 
00055 }
00056 
00057 
00058 function OnInit(params)
00059 {
00060         // TODO: put your initialization code here
00061         SetLocalDir();
00062         
00063         initAvatars();
00064         avatars.addCharacter("Hero","hero.cfg");
00065 //      avatars.addCharacter("AMan0004","AMan0004.cfg");
00066         outputln("animation duration ",avatars.getAnimationDuration(0,0));
00067 
00068         KeyManager.addKeyFunction("m",VK_LSHIFT,true,"incMorphVal",{0,0.01},2,"Increase Morph");
00069         KeyManager.addKeyFunction("m",VK_LSHIFT,false,"incMorphVal",{0,-0.01},2,"Decrease Morph");
00070         KeyManager.addKeyFunction("n",VK_LSHIFT,true,"incMorphVal",{1,0.01},2,"Increase Morph");
00071         KeyManager.addKeyFunction("n",VK_LSHIFT,false,"incMorphVal",{1,-0.01},2,"Decrease Morph");
00072         KeyManager.addKeyFunction("b",VK_LSHIFT,true,"incMorphVal",{2,0.01},2,"Increase Morph");
00073         KeyManager.addKeyFunction("b",VK_LSHIFT,false,"incMorphVal",{2,-0.01},2,"Decrease Morph");
00074         KeyManager.addKeyFunction("v",VK_LSHIFT,true,"incMorphVal",{3,0.01},2,"Increase Morph");
00075         KeyManager.addKeyFunction("v",VK_LSHIFT,false,"incMorphVal",{3,-0.01},2,"Decrease Morph");
00076         KeyManager.addKeyFunction("c",VK_LSHIFT,true,"incMorphVal",{4,0.01},2,"Increase Morph");
00077         KeyManager.addKeyFunction("c",VK_LSHIFT,false,"incMorphVal",{4,-0.01},2,"Decrease Morph");
00078         KeyManager.addKeyFunction("x",VK_LSHIFT,true,"incMorphVal",{5,0.01},2,"Increase Morph");
00079         KeyManager.addKeyFunction("x",VK_LSHIFT,false,"incMorphVal",{5,-0.01},2,"Decrease Morph");
00080         
00081         KeyManager.addKeyFunction("k",VK_LSHIFT,true,"incNormInfl",{0.01},2,"Increase norminfl");
00082         KeyManager.addKeyFunction("k",VK_LSHIFT,false,"incNormInfl",{-0.01},2,"Decrease norminfl");
00083         
00084         KeyManager.addKeyFunction("s",0,true,"startFlag",{},1,"start scenario");
00085 
00086 
00087 
00088         KeyManager.addKeyFunction("p",0,false,"exeMorph",{0},2,"execute Morph");
00089 
00090 
00091 }
00092 
00093 
00094 
00095 function OnFrame()
00096 {
00097         /* manage camera */
00098         CameraMoveMouse();
00099 
00100 
00101 
00102         SceneBegin();
00103         glDisable(GL_CULL_FACE);
00104 
00105         DrawGrid([0.5, 0.5, 0.5], 100);
00106 #ifdef VA_TRANS
00107         Avatars.Draw(0);
00108 #else
00109         skinshader.start();
00110         skinshader.setParameter("morphval0",morphval[0]);
00111         skinshader.setParameter("morphval1",morphval[1]);
00112         skinshader.setParameter("morphval2",morphval[2]);
00113         skinshader.setParameter("morphval3",morphval[3]);
00114         skinshader.setParameter("morphval4",morphval[4]);
00115         skinshader.setParameter("normalinfl",normalinfl);
00116 //      skinshader.setParameter("growfac",morphval[5]);
00117 //      skinshader.setParameter("thebone",10);
00118         
00119         Avatars.DrawExtShader();
00120         skinshader.stop();
00121 #endif
00122         Avatars.Idle();
00123         // TODO: put your drawing code here
00124         
00125         KeyManager.idle();
00126 
00127 
00128         SceneEnd();
00129 }
00130 
00131 
00132 
00133 function DownloadReady(RequestID)
00134 {
00135         // TODO
00136 }
00137 
00138 
00139 
00140 function OnTimer()
00141 {
00142         // TODO:
00143         
00144                 if (startIt){   
00145 //      avatars.blendCycle(0,0,0.5,0.0);
00146         if (Avatars.isExecuting(0,0)==0 && !wasExecuting){
00147                 avatars.exeAct(0,0,1.0,0.0,1.0,0);
00148                 wasExecuting=true;
00149                 starTime=getTime();
00150 
00151         }
00152         if (Avatars.isExecuting(0,0)==0 && wasExecuting){
00153 //              avatars.exeAct(0,0,0.0,0.0,1.0,0);
00154                 endTime=getTime();
00155                 OutputLN(endTime,",",starTime,",Time passed:",endTime-starTime);
00156                 wasExecuting=false;
00157         }
00158 
00159         }
00160 
00161 }
00162 
00163 
00164 
00165 function OnExit()
00166 {
00167         // TODO: put your cleanup code here
00168 }
00169 
00170 
00171 
 All Classes Files Functions Variables Enumerations Enumerator Defines