X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=gacela_draw.lisp;h=a23c735d98947e58c1a6660030708adf420a7959;hb=cfad9102eb45541eb9b3308ae75f3f6a024381e0;hp=dae68d4f8fced5924fb1f038327bd4d6d293158e;hpb=b759213b0c812ba0ea93034420271ec77edd1e8d;p=gacela.git diff --git a/gacela_draw.lisp b/gacela_draw.lisp index dae68d4..a23c735 100644 --- a/gacela_draw.lisp +++ b/gacela_draw.lisp @@ -14,7 +14,11 @@ ;;; You should have received a copy of the GNU General Public License ;;; along with this program. If not, see . -(in-package :gacela) + +(eval-when (compile load eval) + (when (not (find-package 'gacela)) (make-package 'gacela :nicknames '(gg) :use '(lisp))) + (in-package 'gacela :nicknames '(gg) :use '(lisp))) + (defmacro with-color (color &body code) (cond (color @@ -168,4 +172,14 @@ (glRotatef rot 0 0 1)) (defun to-origin () - (glLoadIdentity)) + (glLoadIdentity) + (cond ((3d-mode?) (camera-look)))) + +(let ((camera-eye '(0 0 0)) (camera-center '(0 0 -100)) (camera-up '(0 1 0))) + (defun set-camera (&key eye center up) + (cond (eye (setq camera-eye eye))) + (cond (center (setq camera-center center))) + (cond (up (setq camera-up up)))) + + (defun camera-look () + (apply #'gluLookAt (concatenate 'list camera-eye camera-center camera-up))))