コード例 #1
0
ファイル: vrlib.c プロジェクト: VisualIdeation/cave5d-2.0.1
int vrlib_button_state (int ibutton)
{
    if (ibutton == -1) ibutton = 0; /* check for quit */
    return vrGet2switchValue (ibutton);
}
コード例 #2
0
ファイル: travel.c プロジェクト: VT-Visionarium/garlic
void update_world()
{
static	vrTime		lastTime = -1;
	vrTime		deltaTime;
	float		joy_x, joy_y;
	vrVector	vec;
	int		input;

	if (lastTime < 0)
		lastTime = vrCurrentSimTime();

	/* do some traveling. */
	deltaTime = vrCurrentSimTime() - lastTime;
	lastTime += deltaTime;

	joy_x = vrGetValuatorValue(0);
	joy_y = vrGetValuatorValue(1);

	vrUserTravelLockSet(VR_ALLUSERS);
	if (fabs(joy_x) > 0.125) {
		vrUserTravelRotateId(VR_ALLUSERS, VR_Y, deltaTime * joy_x * -25.0);
	}

	if (fabs(joy_y) > 0.125) {
		vrVectorGetRWFrom6sensorDir(&vec, 1, VRDIR_FORE);
		vrVectorScale(&vec, deltaTime * joy_y * 2.5);
		vrUserTravelTranslateAd(VR_ALLUSERS, vec.v);
	}

	/* NOTE: this if relies on lazy evaluation -- the second condition */
	/*   shouldn't be checked if the first isn't true.                 */
	if (vrContext->input->num_2ways > 1 && vrGet2switchValue(1)) {
		vrUserTravelReset(VR_ALLUSERS);
	}

	/* NOTE: this if statement relies on lazy evaluation */
	if (vrContext->input->num_2ways > 2 && vrGet2switchValue(2)) {
		vrUserTravelTranslate3d(VR_ALLUSERS, 0.1, 0.0, 0.0);
	}
	/* NOTE: this if statement relies on lazy evaluation */
	if (vrContext->input->num_2ways > 3 && vrGet2switchValue(3)) {
		vrUserTravelTranslate3d(VR_ALLUSERS, -0.1, 0.0, 0.0);
	}
	vrUserTravelLockRelease(VR_ALLUSERS);

	/* set DebugLevel to 200 to print this info to screen every frame */
	if (vrDbgDo(RARE_DBGLVL)) {
		vrMsgPrintf("TRAVEL: controller --");

		vrMsgPrintf(" buttons:");
		for (input = 0; input < vrContext->input->num_2ways; input++)
			vrMsgPrintf(" %d", vrContext->input->switch2[input]->value);

		vrMsgPrintf(" valuators:");
		for (input = 0; input < vrContext->input->num_valuators; input++)
			vrMsgPrintf(" %6.3f", vrContext->input->valuator[input]->value);

		vrMsgPrintf("\n");
	}

#if 1
	/* Demonstration of how to segment different portions of the simulation in the statistics display */
	vrSystemSimCategory(1);		/* up until this point, count time spent in simulation as category-1 */
	vrSleep(10000);
	vrSystemSimCategory(2);		/* between last Stats call and this one, count time spent as category-2 */
	vrSleep(5000);
	/* NOTE: time spent from last stats call (or beginning) is counted as category-1 */
#else
	/* allow other processes to get some work done */
	vrSleep(1);
#endif
}