Skip to content

Commit

Permalink
minor cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
kaveh808 committed Sep 14, 2023
1 parent 4fd970c commit b544d84
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 23 deletions.
19 changes: 0 additions & 19 deletions src/plugins/smooth-subdiv-mesh.lisp
Original file line number Diff line number Diff line change
Expand Up @@ -114,24 +114,6 @@
crease-point
sharpness)))))))))

(defun set-smooth-vertex-vertex-crease-points-SAV (mesh subdiv)
(do-array (x h (sm-half-edges mesh))
(let* ((v (vertex h))
(vtx (sm-nth-vertex mesh v))
(crease-edges (sm-vertex-crease-edges mesh v)))
(cond ((> (length crease-edges) 2) ;corner vertex
(setf (point (sm-nth-vertex subdiv v))
(p:copy (point vtx))))
((= (length crease-edges) 2) ;vertex on crease
(let ((edge-point-0 (point (sm-edge-other-vertex mesh (elt crease-edges 0) vtx)))
(edge-point-1 (point (sm-edge-other-vertex mesh (elt crease-edges 1) vtx))))
;; equation 9 in Pixar paper
(setf (point (sm-nth-vertex subdiv v))
(p/ (p+ (p+ (p* (point vtx) 6)
edge-point-0)
edge-point-1)
8.0))))
(t nil)))))
(defmethod sm-edge-other-vertex ((mesh subdiv-mesh) (edge sm-edge) (vertex sm-vertex))
(let* ((vertices (sm-edge-vertices mesh edge)))
(cond ((eq vertex (elt vertices 0))
Expand All @@ -140,7 +122,6 @@
(elt vertices 0))
(t (error "Vertex ~a is not on edge ~a" vertex edge)))))

;;; TODO - sharp creases
(defun set-smooth-subdiv-edge-sharpness (mesh subdiv)
(do-array (i e (sm-edges mesh))
(setf (sharpness (sm-nth-edge subdiv (* 2 i))) (1- (sharpness e)))
Expand Down
11 changes: 7 additions & 4 deletions test/demo-misc.lisp
Original file line number Diff line number Diff line change
Expand Up @@ -193,10 +193,6 @@ Make sure you have opened the graphics window by doing:
;; smooth-subdiv-mesh with fractional edge sharpness -- octahedron
(with-clear-scene
(let ((base-mesh (make-octahedron 6.0 :mesh-type 'smooth-subdiv-mesh)))
;; equator ring
(unselect-all-edges base-mesh)
(select-edges base-mesh '(2 3 9 10))
(map 'vector (lambda (e) (setf (sharpness e) 8.0)) (selected-edges base-mesh))
;; vertical ring 1
(unselect-all-edges base-mesh)
(select-edges base-mesh '(1 4 6 7))
Expand All @@ -205,6 +201,11 @@ Make sure you have opened the graphics window by doing:
(unselect-all-edges base-mesh)
(select-edges base-mesh '(0 5 8 11))
(map 'vector (lambda (e) (setf (sharpness e) 0.5)) (selected-edges base-mesh))
;; equator ring
(unselect-all-edges base-mesh)
(select-edges base-mesh '(2 3 9 10))
(map 'vector (lambda (e) (setf (sharpness e) 8.0)) (selected-edges base-mesh))
;; create scene
(make-animated-subdiv-scene base-mesh 7)))

;; refine-subdiv-mesh
Expand All @@ -229,6 +230,7 @@ Make sure you have opened the graphics window by doing:

;; multi-shape scene
;; TODO -- slow to create, profile code (probably building half-edge structure)
#|
(with-clear-scene
(let* ((filename (asdf:system-relative-pathname "kons-9" "test/data/cow.obj"))
(polyh-1 (import-obj filename))
Expand All @@ -251,6 +253,7 @@ Make sure you have opened the graphics window by doing:
(make-animated-subdiv-scene base-mesh-2 3)
(make-animated-subdiv-scene base-mesh-3 3)
))
|#

(defparameter *example-obj-filename*
(first (list
Expand Down

0 comments on commit b544d84

Please sign in to comment.