@@ -53,3 +53,36 @@ void DbgPainter::drawLine(const Vec3& a, const Vec3& b) {
5353
5454 painter.drawLine (x0,y0,x1,y1);
5555 }
56+
57+ void DbgPainter::drawPoint (const Tempest::Vec3& a, int radiusPx) {
58+ Vec3 pa = a;
59+ float wa = 1 ;
60+ mvp.project (pa.x ,pa.y ,pa.z ,wa);
61+
62+ if (wa<0 .001f )
63+ return ;
64+
65+ pa /= wa;
66+
67+ int x0 = int ((pa.x +1 .f )*0 .5f *float (w));
68+ int y0 = int ((pa.y +1 .f )*0 .5f *float (h));
69+
70+ painter.drawRect (x0-radiusPx,y0-radiusPx, 1 +2 *radiusPx, 1 +2 *radiusPx);
71+ }
72+
73+ void DbgPainter::drawAabb (const Tempest::Vec3& min, const Tempest::Vec3& max) {
74+ drawLine (Tempest::Vec3 (min.x , min.y , min.z ), Tempest::Vec3 (max.x , min.y , min.z ));
75+ drawLine (Tempest::Vec3 (max.x , min.y , min.z ), Tempest::Vec3 (max.x , min.y , max.z ));
76+ drawLine (Tempest::Vec3 (max.x , min.y , max.z ), Tempest::Vec3 (min.x , min.y , max.z ));
77+ drawLine (Tempest::Vec3 (min.x , min.y , max.z ), Tempest::Vec3 (min.x , min.y , min.z ));
78+
79+ drawLine (Tempest::Vec3 (min.x , max.y , min.z ), Tempest::Vec3 (max.x , max.y , min.z ));
80+ drawLine (Tempest::Vec3 (max.x , max.y , min.z ), Tempest::Vec3 (max.x , max.y , max.z ));
81+ drawLine (Tempest::Vec3 (max.x , max.y , max.z ), Tempest::Vec3 (min.x , max.y , max.z ));
82+ drawLine (Tempest::Vec3 (min.x , max.y , max.z ), Tempest::Vec3 (min.x , max.y , min.z ));
83+
84+ drawLine (Tempest::Vec3 (min.x , min.y , min.z ), Tempest::Vec3 (min.x , max.y , min.z ));
85+ drawLine (Tempest::Vec3 (max.x , min.y , min.z ), Tempest::Vec3 (max.x , max.y , min.z ));
86+ drawLine (Tempest::Vec3 (max.x , min.y , max.z ), Tempest::Vec3 (max.x , max.y , max.z ));
87+ drawLine (Tempest::Vec3 (min.x , min.y , max.z ), Tempest::Vec3 (min.x , max.y , max.z ));
88+ }
0 commit comments