예제 #1
0
static void testInit() {
	Camera * cameraPtr;
	Camera cameraStruct;
	
	cameraPtr = Camera_create();
	TestCase_assert(cameraPtr->orientation.x == 0.0f, "Expected 0 but got %f", cameraPtr->orientation.x);
	TestCase_assert(cameraPtr->orientation.y == 0.0f, "Expected 0 but got %f", cameraPtr->orientation.y);
	TestCase_assert(cameraPtr->orientation.z == 0.0f, "Expected 0 but got %f", cameraPtr->orientation.z);
	TestCase_assert(cameraPtr->orientation.w == 1.0f, "Expected 1 but got %f", cameraPtr->orientation.w);
	TestCase_assert(cameraPtr->position.x == 0.0f, "Expected 0 but got %f", cameraPtr->position.x);
	TestCase_assert(cameraPtr->position.y == 0.0f, "Expected 0 but got %f", cameraPtr->position.y);
	TestCase_assert(cameraPtr->position.z == 0.0f, "Expected 0 but got %f", cameraPtr->position.z);
	TestCase_assert(cameraPtr->dispose != NULL, "Method unexpectedly NULL");
	TestCase_assert(cameraPtr->getMatrix != NULL, "Method unexpectedly NULL");
	cameraPtr->dispose(cameraPtr);
	
	Camera_init(&cameraStruct);
	TestCase_assert(cameraStruct.orientation.x == 0.0f, "Expected 0 but got %f", cameraStruct.orientation.x);
	TestCase_assert(cameraStruct.orientation.y == 0.0f, "Expected 0 but got %f", cameraStruct.orientation.y);
	TestCase_assert(cameraStruct.orientation.z == 0.0f, "Expected 0 but got %f", cameraStruct.orientation.z);
	TestCase_assert(cameraStruct.orientation.w == 1.0f, "Expected 1 but got %f", cameraStruct.orientation.w);
	TestCase_assert(cameraStruct.position.x == 0.0f, "Expected 0 but got %f", cameraStruct.position.x);
	TestCase_assert(cameraStruct.position.y == 0.0f, "Expected 0 but got %f", cameraStruct.position.y);
	TestCase_assert(cameraStruct.position.z == 0.0f, "Expected 0 but got %f", cameraStruct.position.z);
	TestCase_assert(cameraStruct.dispose != NULL, "Method unexpectedly NULL");
	TestCase_assert(cameraStruct.getMatrix != NULL, "Method unexpectedly NULL");
	cameraStruct.dispose(&cameraStruct);
}
예제 #2
0
// Initialize Hardware
void Initialize(void)
{
	RESET_Write(0);
	CyDelay(100);
	RESET_Write(1);
	CyDelay(100);
	
	PAN_Start();
	TILT_Start();
	
	PAN_WriteCompare(new_pan);
	TILT_WriteCompare(new_tilt);
	
	I2CM_Start();
	Camera_init();
	
	CyDelay(1000);
}
예제 #3
0
void testGetMatrix() {
	Camera camera;
	Matrix matrix;
	
	Camera_init(&camera);
	matrix = camera.getMatrix(&camera);
	assertMatrixApproximate(matrix, 1.0f, 0.0f, 0.0f, 0.0f,
	                                0.0f, 1.0f, 0.0f, 0.0f,
	                                0.0f, 0.0f, 1.0f, 0.0f,
	                                0.0f, 0.0f, 0.0f, 1.0f, 0.00001f);
	
	camera.orientation = Quaternion_fromAxisAngle(Vector3_init(0.0f, 1.0f, 0.0f), M_PI);
	camera.position = Vector3_init(1.0f, -1.0f, 2.0f);
	matrix = camera.getMatrix(&camera);
	assertMatrixApproximate(matrix, -1.0f, 0.0f,  0.0f, 1.0f,
	                                 0.0f, 1.0f,  0.0f, 1.0f,
	                                 0.0f, 0.0f, -1.0f, 2.0f,
	                                 0.0f, 0.0f,  0.0f, 1.0f, 0.00001f);
}
예제 #4
0
Camera  *Camera_new()
{
	return Camera_init(malloc(sizeof(Camera)));
}