nurbs: cleanup.
							parent
							
								
									33f2fbd099
								
							
						
					
					
						commit
						3f2404a628
					
				|  | @ -1,9 +1,9 @@ | ||||||
| ! (c)2009 Joe Groff bsd license | ! Copyright (C) 2009 Joe Groff | ||||||
| USING: accessors alien.c-types arrays grouping kernel locals | ! See http://factorcode.org/license.txt for BSD license | ||||||
| math math.order math.ranges math.vectors | USING: accessors alien.c-types grouping kernel locals math | ||||||
| math.vectors.homogeneous sequences specialized-arrays ; | math.order math.ranges math.vectors math.vectors.homogeneous | ||||||
| FROM: alien.c-types => float ; | sequences specialized-arrays ; | ||||||
| SPECIALIZED-ARRAY: float | SPECIALIZED-ARRAY: alien.c-types:float | ||||||
| IN: nurbs | IN: nurbs | ||||||
| 
 | 
 | ||||||
| TUPLE: nurbs-curve | TUPLE: nurbs-curve | ||||||
|  | @ -55,10 +55,10 @@ TUPLE: nurbs-curve | ||||||
|     knot-constants second t * knot-constants fourth + bases second * |     knot-constants second t * knot-constants fourth + bases second * | ||||||
|     + ; |     + ; | ||||||
| 
 | 
 | ||||||
| : (eval-curve) ( base-values control-points -- value ) | : eval-curve ( base-values control-points -- value ) | ||||||
|     [ n*v ] 2map { 0.0 0.0 0.0 } [ v+ ] binary-reduce h>v ; |     [ n*v ] 2map { 0.0 0.0 0.0 } [ v+ ] binary-reduce h>v ; | ||||||
| 
 | 
 | ||||||
| :: (eval-bases) ( curve t interval values order -- values' ) | :: eval-bases ( curve t interval values order -- values' ) | ||||||
|     order 2 - curve (knot-constants)>> nth :> all-knot-constants |     order 2 - curve (knot-constants)>> nth :> all-knot-constants | ||||||
|     interval order interval + all-knot-constants clip-range :> ( from to ) |     interval order interval + all-knot-constants clip-range :> ( from to ) | ||||||
|     from to all-knot-constants subseq :> knot-constants |     from to all-knot-constants subseq :> knot-constants | ||||||
|  | @ -66,8 +66,8 @@ TUPLE: nurbs-curve | ||||||
| 
 | 
 | ||||||
|     knot-constants bases [ t eval-base ] 2map :> values' |     knot-constants bases [ t eval-base ] 2map :> values' | ||||||
|     order curve order>> = |     order curve order>> = | ||||||
|     [ values' from to curve control-points>> subseq (eval-curve) ] |     [ values' from to curve control-points>> subseq eval-curve ] | ||||||
|     [ curve t interval 1 - values' order 1 + (eval-bases) ] if ; |     [ curve t interval 1 - values' order 1 + eval-bases ] if ; | ||||||
| 
 | 
 | ||||||
| : eval-nurbs ( nurbs-curve t -- value ) | : eval-nurbs ( nurbs-curve t -- value ) | ||||||
|     2dup knot-interval 1 - { 1.0 } 2 (eval-bases) ; |     2dup knot-interval 1 - { 1.0 } 2 eval-bases ; | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue