|
From: <k-...@us...> - 2013-04-18 14:15:53
|
Revision: 607
http://sourceforge.net/p/euslisp/code/607
Author: k-okada
Date: 2013-04-18 14:15:43 +0000 (Thu, 18 Apr 2013)
Log Message:
-----------
move enclosed-vertexp from jsk, update convex-hull-3d based on convex-hull-3d-old of primtpatch.l
Modified Paths:
--------------
trunk/EusLisp/lisp/geo/primt.l
Modified: trunk/EusLisp/lisp/geo/primt.l
===================================================================
--- trunk/EusLisp/lisp/geo/primt.l 2013-04-16 06:48:00 UTC (rev 606)
+++ trunk/EusLisp/lisp/geo/primt.l 2013-04-18 14:15:43 UTC (rev 607)
@@ -332,6 +332,13 @@
;; convexhull using gift-wrapping algorithm
;;
+(defun enclosed-vertexp (v) ;; v=(#f() #<edge..> #<edge..>...)
+ (let ((result t))
+ (dolist (e (cdr v))
+ (setq result (and (e . pface)(e . nface) result))
+ )
+ (and (cdr v) result)))
+
(defun convex-hull-3d (vertices)
"ARGS = (vertices)
Create a body of convex-hull from a list of vertices"
@@ -390,8 +397,15 @@
(setq newedges (send newface :edges))
(dolist (ne newedges)
(if (memq ne edgeq)
- (setq edgeq (delete ne edgeq))
- (setq edgeq (cons ne edgeq))))
+ (progn
+ (setq edgeq (delete ne edgeq))
+ (let ((ver))
+ (dolist (v (send ne :vertices))
+ (setq ver (find v *vertices* :key #'car))
+ (if (enclosed-vertexp ver)
+ (setq *vertices* (delete ver *vertices* :count 1 )
+ )))))
+ (setq edgeq (append edgeq (list ne)))))
(setq faceq (cons newface faceq))
(nconc *faces* (list newface))
(if *debug* (print (length *faces* )))
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|