Waitrud Weber’s blog

things and reminders for memories

3d: WindowsAPI: Windows-make: How do we face memories problem: book of edge of box:

We'd rather love to draw the box once, before any other objects because box program is necesarily in drawing on the screen for faster calculation.

----

 (20200608: )
curtain->box->Center = {x=-35.8818359 y=10.0000000 z=-240.000000 }
0x00459b20 {RailWidth=1000 Width=500 points=0x00000000 {???} ...}

----

Convert:

[0] = 0x00c6ed08 {p1=0x00c724f8 {x=-300.000000 y=0.000000000 z=-300.000000 } p2=0x00c72418 {x=-300.000000 ...} ...}
[1] = 0x00c6edc8 {p1=0x00c71ff0 {x=-300.000000 y=20.0000000 z=-300.000000 } p2=0x00c71fb8 {x=220.120850 y=...} ...}

to screen:

ll->p1 = 0x0114bcc0 {x=-26.3200436 y=-98.4446411 z=-300.000000 }
ll->p2 = 0x0114bcf8 {x=-26.5000000 y=-99.9849243 z=-300.000000 }

----

f:id:Waitrud_Weber:20200608025540p:plain

----

.\display_threeD.cpp  Mon Jun 08 02:52:54 2020
351 :
352 ://           p5                  p6        
353 ://
354 ://
355 ://   p1              p2
356 ://
357 ://
358 ://           p4                  p7
359 ://
360 ://
361 ://   p0              p3
362 :
363 :// 20200605: calculation of box, which belogs to rails:
364 :// 20200606: compilled once:
365 ://
366 ://
367 ://
368 :void calculation_box_onralis( vPointLinear* pCurveLines ) {
369 :	printf("void calculation_box_onralis( vPointLinear* pCurveLines ) starts.\r\n");
370 :
371 :	float x1 =  99999999999.0f, y1 =  99999999999.0f, z1 =  99999999999.0f;
372 :	float x2 = -99999999999.0f, y2 = -99999999999.0f, z2 = -99999999999.0f;
373 :
374 :	if ( pCurveLines == nullptr ) return;
375 :	if ( pCurveLines->numPS < 1 ) return;
376 :
377 :	curtain = new vRailCurtain ();
378 :
379 :	//pCurveLines = new vPointLinear();
380 :	for ( int i=0; inumPS; i++ ) {
381 :		if ( pCurveLines->aPS[i]->Anchor->x < x1 ) x1 = pCurveLines->aPS[i]->Anchor->x;
382 :		if ( pCurveLines->aPS[i]->Anchor->y < y1 ) y1 = pCurveLines->aPS[i]->Anchor->y;
383 :		if ( pCurveLines->aPS[i]->Anchor->z < z1 ) z1 = pCurveLines->aPS[i]->Anchor->z;
384 :		if ( pCurveLines->aPS[i]->Anchor->x > x2 ) x2 = pCurveLines->aPS[i]->Anchor->x;
385 :		if ( pCurveLines->aPS[i]->Anchor->y > y2 ) y2 = pCurveLines->aPS[i]->Anchor->y;
386 :		if ( pCurveLines->aPS[i]->Anchor->z > z2 ) z2 = pCurveLines->aPS[i]->Anchor->z;
387 :	}
388 :
389 :	if (curtain->box == nullptr) curtain->box = new vBox(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
390 :
391 :	curtain->box->p[0]->setPoint( x1, y1, z1 );
392 :	curtain->box->p[1]->setPoint( x1, y2, z1 );
393 :	curtain->box->p[2]->setPoint( x2, y2, z1 );
394 :	curtain->box->p[3]->setPoint( x2, y1, z1 );
395 :
396 :	curtain->box->p[4]->setPoint( x1, y1, z2 );
397 :	curtain->box->p[5]->setPoint( x1, y2, z2 );
398 :	curtain->box->p[6]->setPoint( x2, y2, z2 );
399 :	curtain->box->p[7]->setPoint( x2, y1, z2 );
400 :
401 :	curtain->box->line[ 0] = new vLine ( curtain->box->p[0], curtain->box->p[1]);
402 :	curtain->box->line[ 1] = new vLine ( curtain->box->p[1], curtain->box->p[2]);
403 :	curtain->box->line[ 2] = new vLine ( curtain->box->p[2], curtain->box->p[3]);
404 :	curtain->box->line[ 3] = new vLine ( curtain->box->p[3], curtain->box->p[0]);
405 :	curtain->box->line[ 4] = new vLine ( curtain->box->p[4], curtain->box->p[5]);  // bottom
406 :	curtain->box->line[ 5] = new vLine ( curtain->box->p[5], curtain->box->p[6]);
407 :	curtain->box->line[ 6] = new vLine ( curtain->box->p[6], curtain->box->p[7]);
408 :	curtain->box->line[ 7] = new vLine ( curtain->box->p[7], curtain->box->p[4]); 
409 :	curtain->box->line[ 8] = new vLine ( curtain->box->p[0], curtain->box->p[4]); // connction of faces
410 :	curtain->box->line[ 9] = new vLine ( curtain->box->p[1], curtain->box->p[5]);
411 :	curtain->box->line[10] = new vLine ( curtain->box->p[3], curtain->box->p[7]);
412 :	curtain->box->line[11] = new vLine ( curtain->box->p[2], curtain->box->p[6]);
413 :
414 :	// 20200607:
415 :	curtain->box->Center.setPoint( ( x2 + x1 ) /2.0f, (y2 + y1) / 2.0f, (z2 + z1) / 2.0f );
416 :
417 :	printf("void calculation_box_onralis( vPointLinear* pCurveLines ) ends.\r\n");
418 :	return;
419 :}
420 :

----

.\display_threeD.cpp  Sat Jun 06 23:52:34 2020
347 ://           p5                  p6        
348 ://
349 ://
350 ://   p1              p2
351 ://
352 ://
353 ://           p4                  p7
354 ://
355 ://
356 ://   p0              p3
357 :
358 :// 20200605:  calculation of box, which belongs to rails
359 :// 20200606: compilled once:
360 ://
361 ://
362 ://
363 :void calculation_box_onralis( vPointLinear* pCurveLines ) {
364 :	float x1, x2, y1, y2, z1, z2;
365 :
366 :	printf("void calculation_box_onralis( vPointLinear* pCurveLines ) starts.\r\n");
367 :
368 :	if ( pCurveLines == nullptr ) return;
369 :	if ( pCurveLines->numPS < 1 ) return;
370 :
371 :	curtain = new vRailCurtain ();
372 :
373 :	pCurveLines = new vPointLinear();
374 :	for ( int i=0; inumPS; i++ ) {
375 :		if ( pCurveLines->aPS[i]->Anchor->x < x1 ) curtain->box->x1 = x1;
376 :		if ( pCurveLines->aPS[i]->Anchor->y < y1 ) curtain->box->y1 = y1;
377 :		if ( pCurveLines->aPS[i]->Anchor->z < z1 ) curtain->box->z1 = z1;
378 :		if ( pCurveLines->aPS[i]->Anchor->x > x2 ) curtain->box->x2 = x2;
379 :		if ( pCurveLines->aPS[i]->Anchor->y > y2 ) curtain->box->y2 = y2;
380 :		if ( pCurveLines->aPS[i]->Anchor->z > z2 ) curtain->box->z2 = z2;
381 :	}
382 :
383 :	curtain->box = new vBox( x1, x2, y1, y2, z1, z2 );
384 :
385 :	curtain->box->p[0]->setoint( x1, y1, z1 );
386 :	curtain->box->p[1]->setoint( x1, y2, z1 );
387 :	curtain->box->p[2]->setoint( x2, y2, z1 );
388 :	curtain->box->p[3]->setoint( x2, y1, z1 );
389 :
390 :	curtain->box->p[4]->setoint( x1, y1, z2 );
391 :	curtain->box->p[5]->setoint( x1, y2, z2 );
392 :	curtain->box->p[6]->setoint( x2, y2, z2 );
393 :	curtain->box->p[7]->setoint( x2, y1, z2 );
394 :
395 :	printf("void calculation_box_onralis( vPointLinear* pCurveLines ) ends.\r\n");
396 :	return;
397 :}
398 :
---
.\display_threeD.cpp  Sat Jun 06 21:28:33 2020

345 :// 20200605:  calculation of box, which belogs to rails
346 :// 20200606: compilled once:
347 ://
348 ://
349 ://
350 :void calculation_box_onralis( vPointLinear* pCurveLines ) {
351 :	float x1, x2, y1, y2, z1, z2;
352 :
353 :	printf("void calculation_box_onralis( vPointLinear* pCurveLines ) starts.\r\n");
354 :
355 :	if ( pCurveLines == nullptr ) return;
356 :	if ( pCurveLines->numPS < 1 ) return;
357 :
358 :	curtain = new vRailCurtain ();
359 :
360 :	pCurveLines = new vPointLinear();
361 :	for ( int i=0; inumPS; i++ ) {
362 :		if ( pCurveLines->aPS[i]->Anchor->x < x1 ) curtain->box->x1 = x1;
363 :		if ( pCurveLines->aPS[i]->Anchor->y < y1 ) curtain->box->y1 = y1;
364 :		if ( pCurveLines->aPS[i]->Anchor->z < z1 ) curtain->box->z1 = z1;
365 :		if ( pCurveLines->aPS[i]->Anchor->x > x2 ) curtain->box->x2 = x2;
366 :		if ( pCurveLines->aPS[i]->Anchor->y > y2 ) curtain->box->y2 = y2;
367 :		if ( pCurveLines->aPS[i]->Anchor->z > z2 ) curtain->box->z2 = z2;
368 :	}
369 :