Les fonctions: GET-REFLECT.LSP

;************************************************************************
;* [CMFAO] AME 6602 ACQUISITION DES DONNÉES SPATIALES                   *
;* [GRCAO] Claude Parisel                                               *
;* Mars 1999                                                            *
;************************************************************************
; GET-REFLECT
; saisie d'une matrice de réflexion selon le choix
;------------------------------------------------------------------------
; RETOUR:    Matrice de réflexion
;------------------------------------------------------------------------
(defun get-reflect ( / rep)
  (print "choix de la réflexion -> plan, axe ou point: ")
  (setq rep (strcase (getstring "réflexion vs OXY/OYZ/OXZ / OX/OY/OZ / O: ")))
  (if
    (/= rep nil)
    (cond
      (
        (= rep "OXY")
        (setq v (list 1.0 1.0 (- 1.0) 1.0))
      )
      (
        (= rep "OYZ")
        (setq v (list (- 1.0) 1.0 1.0 1.0))
      )
      (
        (= rep "OXZ")
        (setq v (list 1.0 (- 1.0) 1.0 1.0))
      )
      (
        (= rep "OX")
        (setq v (list 1.0 (- 1.0) (- 1.0) 1.0))
      )
      (
        (= rep "OY")
        (setq v (list (- 1.0) 1.0 (- 1.0) 1.0))
      )
      (
        (= rep "OZ")
        (setq v (list (- 1.0) (- 1.0) 1.0 1.0))
      )
      (
        (= rep "O")
        (setq v (list (- 1.0) (- 1.0) (- 1.0) 1.0))
      )
    )
  )
  (make-reflect v)
)
;--------------------------------------------------------------------------
;
Exemple:
; Command: (get-reflect)
;          "choix de la réflexion -> plan, axe ou point:
;          " réflexion vs OXY/OYZ/OXZ/OX/OY/OZ/O:
OXY
;          ((1.0 0.0 0.0 0.0) (0.0 1.0 0.0 0.0) (0.0 0.0 -1.0 0.0) (0.0 0.0 0.0 1.0))
;--------------------------------------------------------------------------