Created
October 10, 2024 14:47
-
-
Save sgithens/631867bbc918b86a27d7bd521f96b278 to your computer and use it in GitHub Desktop.
repaint rotate demo draft
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| (defvar *xxx-rot* 0) ;pi) | |
| (defvar *yyy-rot* 0) ;25) | |
| (defvar *zzz-rot* 0) ;pi) | |
| (defvar *xxx-index* 0) | |
| (defvar *yyy-index* 0) | |
| (defvar *zzz-index* -1900) | |
| (defvar *box-depth-mult* 5) | |
| (defun demo () | |
| (setf *xxx-rot* 0 | |
| *yyy-rot* 0 | |
| *zzz-rot* 0 | |
| *box-depth-mult* 1) | |
| (sleep 1) | |
| (dotimes (x 100) (incf *xxx-rot* 0.01) (sleep 0.01)) | |
| (sleep 0.5) | |
| (dotimes (x 100) (incf *box-depth-mult* 0.12) (sleep 0.01)) | |
| (sleep 0.5) | |
| (loop for i | |
| from 0 to 1257 | |
| do (decf *zzz-rot* 0.02) | |
| do (sleep 0.01) | |
| ) | |
| (setf *zzz-rot* 0) | |
| (dotimes (x 100) (decf *box-depth-mult* 0.12) (sleep 0.01)) | |
| (dotimes (x 100) (decf *xxx-rot* 0.01) (sleep 0.01))) | |
| (defun demo2 () | |
| (setf *xxx-rot* 0 | |
| *yyy-rot* 0 | |
| *zzz-rot* 0 | |
| *box-depth-mult* 1) | |
| (sleep 1) | |
| (loop for i | |
| from 0 to 100 | |
| do (progn | |
| (decf *zzz-rot* 0.02) | |
| (incf *xxx-rot* 0.01) | |
| (incf *box-depth-mult* 0.12)) | |
| do (sleep 0.01) | |
| ) | |
| (loop for i | |
| from 0 to 428 | |
| do (decf *zzz-rot* 0.02) | |
| do (sleep 0.01) | |
| ) | |
| (loop for i | |
| from 0 to 95 | |
| do (progn | |
| (decf *zzz-rot* 0.02) | |
| (decf *xxx-rot* 0.01) | |
| (decf *box-depth-mult* 0.12)) | |
| do (sleep 0.01) | |
| ) | |
| (setf *xxx-rot* 0 | |
| *yyy-rot* 0 | |
| *zzz-rot* 0 | |
| *box-depth-mult* 1)) | |
| (defun repaint-window (&OPTIONAL (WINDOW *BOXER-PANE*) (flush-buffer? t) &KEY (process-state-label "stopped")) | |
| (check-for-window-resize) | |
| ;; (format t "~%repaint-window: hmm6.2") | |
| (clear-window window) | |
| (let ((view-matrix (3d-matrices:meye 4))) | |
| (3d-matrices:nmtranslate view-matrix (3d-vectors:vec *xxx-index* *yyy-index* *zzz-index*)) | |
| (setf (boxer::boxgl-device-transform-matrix bw::*boxgl-device*) | |
| view-matrix) | |
| (setf (boxer::boxgl-device-model-matrix bw::*boxgl-device*) | |
| (3d-matrices:meye 4)) | |
| (update-matrices-ubo bw::*boxgl-device*) | |
| (with-pen-color (*orange*) | |
| (draw-rectangle 10 10 0 0) | |
| (draw-line 0 -5000 0 5000) | |
| (draw-line -5000 0 5000 0) | |
| )) | |
| (let ((view-matrix (3d-matrices:meye 4)) | |
| (flip (3d-matrices:meye 4))) | |
| (setf (aref (3d-matrices:marr4 flip) 5) -1.0) | |
| (3d-matrices:nmtranslate view-matrix (3d-vectors:vec *xxx-index* *yyy-index* *zzz-index*)) | |
| (setf view-matrix (3d-matrices:m* view-matrix flip)) | |
| (3d-matrices:nmrotate view-matrix 3d-vectors:+vx+ *xxx-rot*) | |
| (3d-matrices:nmrotate view-matrix 3d-vectors:+vy+ *yyy-rot*) | |
| (3d-matrices:nmrotate view-matrix 3d-vectors:+vz+ *zzz-rot*) | |
| (setf (boxer::boxgl-device-transform-matrix bw::*boxgl-device*) | |
| view-matrix) | |
| ) | |
| (update-matrices-ubo bw::*boxgl-device*) | |
| (REDISPLAYING-WINDOW (WINDOW) | |
| ;; (clear-window window) | |
| (repaint-guts) | |
| (repaint-mouse-docs) | |
| ;; (let ((cur-transform (boxer::boxgl-device-transform-matrix bw::*boxgl-device*))) | |
| ;; (set-transform bw::*boxgl-device* 0 0) | |
| ;; (repaint-dev-overlay process-state-label) | |
| ;; (setf (boxer::boxgl-device-transform-matrix bw::*boxgl-device*) cur-transform)) | |
| (when flush-buffer? (swap-graphics-buffers window))) | |
| ) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment