home *** CD-ROM | disk | FTP | other *** search
/ vis-ftp.cs.umass.edu / vis-ftp.cs.umass.edu.tar / vis-ftp.cs.umass.edu / pub / Software / ASCENDER / ascender.tar.Z / ascender.tar / Epipolar / epiproj-rcde.lisp < prev    next >
Lisp/Scheme  |  1995-07-20  |  1KB  |  36 lines

  1. ;;; EPIPROJ-RCDE.LISP
  2. ;;;
  3. ;;; Forward and backward projection using RCDE projection facilities
  4. ;;;
  5. ;;; Author: Robert T. Collins
  6. ;;; Date: Mar 1, 1995
  7. ;;; based on my earlier epipolar.lisp, written Dec 28, 1993
  8. ;;;
  9. ;-----------------------------------------------------------------
  10. ; (c) Copyright 1995 by The University of Massachusetts
  11. ;------------------------------------------------------------------
  12.  
  13. (in-package 'epipolar :nicknames '(epi))
  14.  
  15. (defun project-point (projection x y z)
  16.   "Projects 3D world point x y z into image plane u v."
  17.   (multiple-value-bind (u v)
  18.      (cme::project-to-view
  19.        projection
  20.        (coerce x 'double-float)
  21.        (coerce y 'double-float)
  22.        (coerce z 'double-float))
  23.      (list u v)))
  24.  
  25. (defun backproject-point (projection u v zval)
  26.   "Backproject image point u v and return the 3d point where
  27.   the backprojection ray intersects the plane z = zval."
  28.   (multiple-value-bind (x y z) 
  29.      (cme::project-to-world 
  30.        projection 
  31.        (coerce u 'double-float)
  32.        (coerce v 'double-float)
  33.        (coerce zval 'double-float))
  34.      (list x y z)))
  35.  
  36.