Waitrud Weber’s blog

things and reminders for memories

3d: windows-make: WindowsAPI: memorization well and display of 3 axes.

Buffer indexes are wrong, I'm sorry for that.
Anyway, I also change the axes buffer array to the fixed one.

 

f:id:Waitrud_Weber:20210810211929p:plain

3 axes is displayed well.
int nDisplayControls_wmpaint_display_threeD_proc ( HWND hWnd, HDC hDC, PAINTSTRUCT* ps, UINT uMsg, WPARAM wParam, LPARAM lParam ) {
	err_msg_001("mDisplayControls_wmpaint_display_threeD_proc: starts.\r\n");

	static int call_once_m = 0;
	int a = 0;
	float x1 = 0.0f, y1 = 0.0f, z1 = 0.0f;
	float x2 = 0.0f, y2 = 0.0f, z2 = 0.0f;

	if ( call_once_m == 0 ) {
		err_msg_001("mDisplayControls_wmpaint_display_threeD_proc: middle: 002-01\r\n");
		a = initialize_vAxex_2D_003 ();
		call_once_m = 1;
		err_msg_001("mDisplayControls_wmpaint_display_threeD_proc: middle: 002-02\r\n");
	}

	err_msg_001("mDisplayControls_wmpaint_display_threeD_proc: middle: 002-03-01.\r\n");
	line_index = 12;

	for ( int i = 3; i<line_index; i++ ) {

//		err_msg_001("m-02-01: i %d line_index = %d lines_001[%d]=|%p|/ lines_001 |%p| lines_0012D[%d] =|%p| / lines_0012D |%p| AXEX_2D_001[%d]=|%p|\r\n", i, line_index, i, lines_001[i], lines_001, i, lines_2D_001[i], lines_2D_001, (i - 1)  / 3, AXEX_2D_001[ (i - 1)  / 3 ] );
		// right arrow is different, we don't know that reason.
		// x
		x1 = AXEX_2D_002[ i  / 3 - 1 ].center->x;
		y1 = AXEX_2D_002[ i  / 3 - 1 ].center->y;
		z1 = AXEX_2D_002[ i  / 3 - 1 ].center->z;
//		err_msg_001("m-02-01-01: i %d line_index = %d lines_001[%d]=|%p|/ lines_001 |%p| lines_0012D[%d] =|%p| / lines_0012D |%p|\r\n", i, line_index, i, lines_001[i], lines_001, i, lines_2D_001[i], lines_2D_001 );
		x2 = x1 + AXEX_2D_002[ i  / 3 - 1 ].right->x * 30.0f;
		y2 = y1 + AXEX_2D_002[ i  / 3 - 1 ].right->y * 30.0f;
		z2 = z1 + AXEX_2D_002[ i  / 3 - 1 ].right->z * 30.0f;
//		err_msg_001("m-02-01-02: i %d line_index = %d lines_001[%d]=|%p|/ lines_001 |%p| lines_0012D[%d] =|%p| / lines_0012D |%p|\r\n", i, line_index, i, lines_001[i], lines_001, i, lines_2D_001[i], lines_2D_001 );
		lines_001[i].setLine (  x1, y1, z1, x2, y2, z2 ) ;
		lines_2D_001[i].setLine ( 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f );
//		err_msg_001("m-02-01-03: i %d line_index = %d lines_001[%d]=|%p|/ lines_001 |%p| lines_0012D[%d] =|%p| / lines_0012D |%p|\r\n", i, line_index, i, lines_001[i], lines_001, i, lines_2D_001[i], lines_2D_001 );
		i++;

//		err_msg_001("m-02-02: i %d line_index = %d lines_001[%d]=|%p|/ lines_001 |%p| lines_0012D[%d] =|%p| / lines_0012D |%p|\r\n", i, line_index, i, lines_001[i], lines_001, i, lines_2D_001[i], lines_2D_001 );
		x1 = AXEX_2D_002[ i  / 3 - 1 ].center->x;
		y1 = AXEX_2D_002[ i  / 3 - 1  ].center->y;
		z1 = AXEX_2D_002[ i  / 3 - 1  ].center->z;
		x2 = x1 + AXEX_2D_002[ i  / 3 - 1  ].up->x * 30.0f;
		y2 = y1 + AXEX_2D_002[ i  / 3 - 1  ].up->y * 30.0f;
		z2 = z1 + AXEX_2D_002[ i  / 3 - 1  ].up->z * 30.0f;
		lines_001[i].setLine (  x1, y1, z1, x2, y2, z2 ) ;
		lines_2D_001[i].setLine ( 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f );
//		err_msg_001("m-02-02: i %d line_index = %d lines_001[%d]=|%p|/ lines_001 |%p| lines_0012D[%d] =|%p| / lines_0012D |%p|\r\n", i, line_index, i, lines_001[i], lines_001, i, lines_2D_001[i], lines_2D_001 );
		i++;

		err_msg_001("m-02-03: i %d line_index = %d lines_001[%d]=|%p|/ lines_001 |%p| lines_0012D[%d] =|%p| / lines_0012D |%p|\r\n", i, line_index, i, lines_001[i], lines_001, i, lines_2D_001[i], lines_2D_001 );
		x1 = AXEX_2D_002[ i  / 3 - 1  ].center->x;
		y1 = AXEX_2D_002[ i  / 3 - 1  ].center->y;
		z1 = AXEX_2D_002[ i  / 3 - 1  ].center->z;
		x2 = x1 + AXEX_2D_002[ i  / 3 - 1  ].depth->x * 30.0f;
		y2 = y1 + AXEX_2D_002[ i  / 3 - 1  ].depth->y * 30.0f;
		z2 = z1 + AXEX_2D_002[ i  / 3 - 1  ].depth->z * 30.0f ;
		lines_001[i].setLine (  x1, y1, z1, x2, y2, z2 ) ;
		lines_2D_001[i].setLine ( 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f );
//		err_msg_001("m-02-03: i %d line_index = %d lines_001[%d]=|%p|/ lines_001 |%p| lines_0012D[%d] =|%p| / lines_0012D |%p|\r\n", i, line_index, i, lines_001[i], lines_001, i, lines_2D_001[i], lines_2D_001 );
	}

//	printf("m-02: line_index = %d lines_001 |%p| lines_0012D |%p|\r\n", line_index, lines_001, lines_2D_001 );
	int b = convert_model_lines_002( (vLine*)lines_001, (vLine*)lines_2D_001, 3, line_index );
//	printf("m-03: line_index = %d lines_001 |%p| lines_0012D |%p|\r\n", line_index, lines_001, lines_2D_001 );

	// Display axes from 4 to 15
	for ( int i = 3; i<line_index; i++ ) {
		GamePaint_011( hDC, &lines_2D_001[i] );
	}

	err_msg_001("mDisplayControls_wmpaint_display_threeD_proc: ends.\r\n");
}