pattern:transform
List of: Scheme Extensions
Subjects: Patterns
Contents: Kernel

Action: Creates a new pattern by applying a transformation to an existing pattern.

Filename: kern/kern_scm/pattern_scm.cxx

Syntax: (pattern:transform pat transf)

Arg Types: pat pattern

transf transform

Returns: pattern

Description: Applies the transformation transf to an existing pattern pat.

Example: ; pattern:transform

; make a prism

(define height 1)

;; height

(define maj_rad 1)

;; maj_rad

(define min_rad 0.5)

;; min_rad

(define num_sides 3)

;; num_sides

(define prism (solid:prism height


maj_rad min_rad num_sides))

;; prism

; position the prism

(define origin (position 1 2 3))

;; origin

(define transform (entity:transform prism


(transform:axes


origin (gvector 1 0 0) (gvector 0 1 0))))

;; transform

; make a pattern

(define x-vec (gvector 2 0 0))

;; x-vec

(define num_x 5)

;; num_x

(define y-vec (gvector 1 3 0))

;; y-vec

(define num_y 4)

;; num_y

(define pat (pattern:linear x-vec num_x y-vec num_y))

;; pat

; transform the pattern

(define t (transform:axes (position 4 5 6)


(gvector 0 1 0) (gvector 0 0 1)))

;; t

(set! pat (pattern:transform pat t))

;; #[pattern

;; trans-vec: "TRANS(DOMAIN(X*VEC(2,0,0)+X2*VEC

;; (1,3,0),0,4,0,3),TRANS1)"

;; x-vec:
"DOMAIN(VEC(0,1,0),0,3)"

;; y-vec:
"DOMAIN(VEC(0,0,1),0,3)"

;; z-vec:
"null_law"

;; scale:
"null_law"

;; keep:
"null_law"

;; no list]

; apply the pattern to the prism

(define body (entity:pattern prism pat))

;; body
PDF/KERN/14SCI.PDF
HTM/DATA/KERN/KERN/14SCI/0096.HTM