File tree 1 file changed +36
-0
lines changed
1 file changed +36
-0
lines changed Original file line number Diff line number Diff line change 61
61
bottom-frame
62
62
))
63
63
64
+ (deftest test-pqp-collision
65
+ (let (b1 b2 t0 t1 r (l 100 ) (tm (instance mtimer :init )))
66
+ (dolist (p (list (list t 0.0 #f(-50 50 50 ) (list 0.0 0.0 0.0 )) (list nil 50.0 #f(-150 50 50 ) (list 0.0 0.0 0.0 ))
67
+ (list t 0.0 #f(-50 50 50 ) (list 0.3 0.3 0.3 )) (list nil 30.8431 #f(-150 50 50 ) (list 0.3 0.3 0.3 )))) ; ; (collidep distance pos rot)
68
+ (send tm :start )
69
+ (dotimes (i l)
70
+ (setq b1 (make-cube 100 100 100 ))
71
+ (setq b2 (make-cube 100 100 100 :pos (caddr p) :rpy (cadddr p))))
72
+ (setq t0 (send tm :stop ))
73
+ (objects (list b1 b2))
74
+ (format t " create model (base line time) ~ 7,3 f (~A )~% " t0 p)
75
+ ; ;
76
+ (send tm :start )
77
+ (dotimes (i l)
78
+ (setq b1 (make-cube 100 100 100 ))
79
+ (setq b2 (make-cube 100 100 100 :pos (caddr p) :rpy (cadddr p)))
80
+ (setq r (/= (pqp-collision-check b1 b2) 0 )) ; ; pqp-collision-check returns 1 if collide
81
+ (assert (equal r (car p)) (format nil " check collision check r = ~A , p = ~A " r p))
82
+ )
83
+ (objects (list b1 b2))
84
+ (setq t1 (send tm :stop ))
85
+ (format t " pqp collision check ~ 7,3 f (~A msec/check)~% " t1 (/ (- t1 t0) l))
86
+ ; ;
87
+ (send tm :start )
88
+ (dotimes (i l)
89
+ (setq b1 (make-cube 100 100 100 ))
90
+ (setq b2 (make-cube 100 100 100 :pos (caddr p) :rpy (cadddr p)))
91
+ (setq r (pqp-collision-distance b1 b2))
92
+ (assert (eps= (car r) (cadr p)) (format nil " check collision distance r = ~A , p = ~A " r p))
93
+ )
94
+ (objects (list b1 b2))
95
+ (setq t1 (send tm :stop ))
96
+ (format t " pqp collision distance ~ 7,3 f (~A msec/check)~% " t1 (/ (- t1 t0) l))
97
+ ) ; ; dolist
98
+ ))
99
+
64
100
(run-all-tests)
65
101
(exit)
66
102
You can’t perform that action at this time.
0 commit comments