![]() |
Beaming Scene Service
2.0
RakNet wrapper for managing data communications between multiple Beaming clients
|
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