;;-*-Lisp-*- (in-package goal) ;; definition for function plane-volume-intersect-dist (defun plane-volume-intersect-dist ((arg0 vector) (arg1 vector) (arg2 vector)) (let ((f0-1 (vector-dot arg1 arg0)) (f1-1 (vector-dot arg2 arg0)) ) (if (< 0.00001 (fabs f1-1)) (/ (- (-> arg0 w) f0-1) f1-1) 409600000.0 ) ) ) ;; definition for method 9 of type plane-volume ;; INFO: Used lq/sq ;; WARN: Stack slot offset 148 signed mismatch ;; WARN: Stack slot offset 148 signed mismatch ;; WARN: Stack slot offset 148 signed mismatch ;; WARN: Stack slot offset 148 signed mismatch ;; WARN: Stack slot offset 148 signed mismatch ;; WARN: Stack slot offset 148 signed mismatch ;; WARN: Stack slot offset 148 signed mismatch ;; WARN: Stack slot offset 148 signed mismatch ;; WARN: Stack slot offset 148 signed mismatch ;; WARN: Stack slot offset 148 signed mismatch ;; WARN: Stack slot offset 148 signed mismatch ;; WARN: Stack slot offset 148 signed mismatch ;; WARN: Stack slot offset 148 signed mismatch ;; WARN: Stack slot offset 148 signed mismatch ;; WARN: Stack slot offset 148 signed mismatch ;; WARN: Stack slot offset 148 signed mismatch ;; WARN: Stack slot offset 148 signed mismatch ;; WARN: Stack slot offset 148 signed mismatch ;; WARN: Stack slot offset 148 signed mismatch ;; WARN: Stack slot offset 148 signed mismatch ;; WARN: Stack slot offset 148 signed mismatch ;; WARN: Stack slot offset 148 signed mismatch ;; WARN: Stack slot offset 148 signed mismatch ;; WARN: Stack slot offset 148 signed mismatch ;; WARN: Stack slot offset 148 signed mismatch ;; WARN: Stack slot offset 148 signed mismatch ;; WARN: Stack slot offset 148 signed mismatch ;; WARN: Stack slot offset 148 signed mismatch ;; WARN: Stack slot offset 148 signed mismatch (defmethod plane-volume-method-9 ((this plane-volume) (arg0 symbol) (arg1 vector-array) (arg2 vector-array)) (local-vars (sv-144 vector) (sv-148 number) (sv-152 int) (sv-160 vector) (sv-176 vector) (sv-192 vector) (sv-208 vector) (sv-224 vector) (sv-240 int) (sv-256 int) ) (set! (-> this volume-type) arg0) (set! (-> this point-count) 0) (set! (-> this first-point) (the-as (pointer vector) (-> arg1 data (-> arg1 length)))) (set! (-> this normal-count) 0) (set! (-> this first-normal) (the-as (pointer vector) (-> arg2 data (-> arg2 length)))) (dotimes (s3-0 (-> this num-planes)) (set! sv-176 (new 'stack-no-clear 'vector)) (set! (-> sv-176 quad) (the-as uint128 0)) (set! sv-192 (new 'stack-no-clear 'vector)) (set! (-> sv-192 quad) (the-as uint128 0)) (set! sv-208 (new 'stack-no-clear 'vector)) (set! (-> sv-208 quad) (the-as uint128 0)) (set! sv-224 (new 'stack-no-clear 'vector)) (set! (-> sv-224 quad) (the-as uint128 0)) 0.0 0.0 0.0 (set! (-> (new 'stack-no-clear 'vector) quad) (the-as uint128 0)) (let ((s1-0 (new-stack-vector0)) (s0-0 0) (s2-0 (-> this plane)) ) (set! sv-240 0) (while (< sv-240 (-> this num-planes)) (when (!= s3-0 sv-240) (vector-float*! sv-176 (the-as vector (-> s2-0 sv-240)) (-> s2-0 sv-240 w)) (vector-cross! sv-192 (the-as vector (-> s2-0 sv-240)) (the-as vector (-> s2-0 s3-0))) (vector-normalize! sv-192 1.0) (vector-cross! sv-208 sv-192 (the-as vector (-> s2-0 sv-240))) (vector-normalize! sv-208 1.0) (let ((f0-4 (plane-volume-intersect-dist (-> s2-0 s3-0) sv-176 sv-208))) (when (!= f0-4 409600000.0) (vector+float*! sv-224 sv-176 sv-208 f0-4) (set! sv-144 (new-stack-vector0)) (set! sv-148 0.0) (set! sv-152 0) (set! sv-160 (new-stack-vector0)) (set! (-> sv-144 quad) (-> sv-224 quad)) (set! sv-256 0) (while (< sv-256 (-> this num-planes)) (when (and (!= sv-256 s3-0) (!= sv-256 sv-240)) (let ((f0-6 (plane-volume-intersect-dist (-> s2-0 sv-256) sv-144 sv-192))) (cond ((= f0-6 409600000.0) ) ((zero? sv-152) (vector+float*! sv-144 sv-144 sv-192 f0-6) (set! (-> sv-160 quad) (-> s2-0 sv-256 quad)) (set! sv-148 8192000.0) (set! sv-152 1) ) ((begin (vector-float*! sv-224 sv-192 f0-6) (>= (vector-dot sv-224 sv-160) 0.0)) ) ((>= (vector-dot sv-224 (the-as vector (-> s2-0 sv-256))) 0.0) (when (< (fabs f0-6) (fabs (the-as float sv-148))) (set! sv-148 f0-6) (set! sv-152 (+ sv-152 1)) ) ) (else (vector+float*! sv-144 sv-144 sv-192 f0-6) (set! (-> sv-160 quad) (-> s2-0 sv-256 quad)) (set! sv-152 (+ sv-152 1)) (if (< (fabs f0-6) (fabs (the-as float sv-148))) (set! sv-148 (- (the-as float sv-148) f0-6)) (set! sv-148 0.0) ) ) ) ) ) (set! sv-256 (+ sv-256 1)) ) (cond ((zero? sv-152) ) ((= (the-as float sv-148) 0.0) ) (else (dotimes (v1-79 (-> this num-planes)) (when (and (!= v1-79 s3-0) (!= v1-79 sv-240)) (if (< 4096.0 (- (vector-dot sv-144 (the-as vector (-> s2-0 v1-79))) (-> s2-0 v1-79 w))) (goto cfg-42) ) ) ) (vector+float*! sv-224 sv-144 sv-192 (the-as float sv-148)) (cond ((< (-> arg1 allocated-length) (+ (-> arg1 length) 2)) (format 0 "ERROR : vol-control #x~X out of volume points~%" this) ) (else (set! (-> arg1 data (-> arg1 length) quad) (-> sv-144 quad)) (set! (-> arg1 data (+ (-> arg1 length) 1) quad) (-> sv-224 quad)) (+! (-> arg1 length) 2) (+! (-> this point-count) 2) ) ) (vector+! s1-0 s1-0 sv-144) (vector+! s1-0 s1-0 sv-224) (+! s0-0 2) ) ) ) ) ) (label cfg-42) (set! sv-240 (+ sv-240 1)) ) (when (nonzero? s0-0) (vector-float*! s1-0 s1-0 (/ 1.0 (the float s0-0))) (cond ((< (-> arg2 allocated-length) (+ (-> arg2 length) 2)) (format 0 "ERROR : vol-control #x~X out of volume normals~%" this) ) (else (set! (-> arg2 data (-> arg2 length) quad) (-> s1-0 quad)) (set! (-> arg2 data (+ (-> arg2 length) 1) quad) (-> s2-0 s3-0 quad)) (+! (-> arg2 length) 2) (set! (-> this normal-count) (+ (-> this normal-count) 2)) ) ) ) ) ) this ) ;; definition for method 10 of type plane-volume ;; WARN: Return type mismatch int vs none. (defmethod debug-draw ((this plane-volume)) (let* ((v1-0 (-> this volume-type)) (s5-0 (cond ((= v1-0 'vol) (the-as uint #x8000c000) ) ((= v1-0 'pvol) (the-as uint #x80808080) ) (else (the-as uint #x800000c0) ) ) ) (s4-0 (-> this first-point)) ) (dotimes (s3-0 (/ (-> this point-count) 2)) (add-debug-line #t (bucket-id debug-no-zbuf1) (the-as vector s4-0) (the-as vector (&-> s4-0 4)) (the-as rgba s5-0) #f (the-as rgba -1) ) (set! s4-0 (&-> s4-0 8)) ) ) 0 (none) ) ;; definition for method 11 of type plane-volume (defmethod point-in-vol? ((this plane-volume) (arg0 vector) (arg1 float)) "TODO - Checks if the given [[vector]] point is inside the volume defined by 6 [[plane]]s by atleast the padding value provided" (dotimes (v1-0 (-> this num-planes)) (if (< arg1 (- (vector-dot arg0 (the-as vector (-> this plane v1-0))) (-> this plane v1-0 w))) (return #f) ) ) #t ) ;; definition for method 9 of type vol-control ;; WARN: Return type mismatch int vs none. (defmethod debug-draw ((this vol-control)) (with-pp (let ((a0-1 this)) (when (and (and *display-vol-marks* (logtest? (-> a0-1 flags) (vol-flags display?))) (logtest? (-> this flags) (vol-flags vol-flags-1)) ) (when (zero? (-> this debug-point)) (let ((s5-0 pp)) (set! pp (-> this process)) (let ((s4-0 0)) (dotimes (v1-8 (-> this pos-vol-count)) (+! s4-0 (-> this pos-vol v1-8 num-planes)) ) (dotimes (v1-11 (-> this neg-vol-count)) (+! s4-0 (-> this neg-vol v1-11 num-planes)) ) (set! (-> this debug-point) (new 'debug 'vector-array (* 10 s4-0))) (set! (-> this debug-normal) (new 'debug 'vector-array (* 10 s4-0))) ) (set! pp s5-0) ) (set! (-> this debug-point length) 0) (set! (-> this debug-normal length) 0) (dotimes (s5-1 (-> this pos-vol-count)) (plane-volume-method-9 (-> this pos-vol s5-1) 'vol (-> this debug-point) (-> this debug-normal)) ) (dotimes (s5-2 (-> this neg-vol-count)) (plane-volume-method-9 (-> this neg-vol s5-2) 'vol (-> this debug-point) (-> this debug-normal)) ) ) (dotimes (s5-3 (-> this pos-vol-count)) (debug-draw (-> this pos-vol s5-3)) ) (dotimes (s5-4 (-> this neg-vol-count)) (debug-draw (-> this neg-vol s5-4)) ) ) ) 0 (none) ) ) ;; definition for method 10 of type vol-control (defmethod vol-control-method-10 ((this vol-control) (arg0 plane)) (dotimes (s4-0 (-> this neg-vol-count)) (if (point-in-vol? (-> this neg-vol s4-0) arg0 0.0) (return #f) ) ) (dotimes (s4-1 (-> this pos-vol-count)) (if (point-in-vol? (-> this pos-vol s4-1) arg0 0.0) (return #t) ) ) #f )