pattern:from-list
List of: Scheme Extensions
Subjects: Patterns
Contents: Kernel

Action: Creates a pattern from a list of positions or transformations.

Filename: kern/kern_scm/pattern_scm.cxx

Syntax: (pattern:from-list {position-list [root]} |


{transf-list [root-transf]})

Arg Types: position-list position | (position ...)

root position

transf-list transform | (transform ...)

root-transf transform

Returns: pattern

Description: Creates a pattern from either the positions list or the transfs list. The optional arguments root and root-transf specify the transformation to the first pattern site.

Example: ; pattern:from-list

; 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

(entity:set-color (point origin) RED)

;; ()

(define trans (entity:transform prism


(transform:axes origin (gvector 1 0 0)


(gvector 0 1 0))))

;; trans

; make a pattern

(define t0 (transform:axes (position 0 0 3)


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

;; t0

(define t1 (transform:axes (position 0 6 3)


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

;; t1

(define t2 (transform:axes (position 6 0 3)


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

;; t2

(define t3 (transform:axes (position 6 6 3)


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

;; t3

(define t4 (transform:axes (position 3 3 0)


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

;; t4

(define t5 (transform:axes (position 0 0 -3)


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

;; t5

(define t6 (transform:axes (position 0 6 -3)


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

;; t6

(define t7 (transform:axes (position 6 0 -3)


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

;; t7

(define t8 (transform:axes (position 6 6 -3)


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

;; t8

(define root (transform:translation


(gvector:from-to (position 0 0 0) origin)))

;; root

(define pat (pattern:from-list


(list t0 t1 t2 t3 t4 t5 t6 t7 t8) root))

;; pat

; apply the pattern to the prism

(define body (entity:pattern prism pat))

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