pattern:remove-element
List of: Scheme Extensions
Subjects: Patterns
Contents: Kernel

Action: Removes a single element from an existing pattern.

Filename: kern/kern_scm/pattern_scm.cxx

Syntax: (pattern:remove-element pat coords)

Arg Types: pat pattern

coords pair

Returns: pattern

Description: Removes the element specified by coords from an existing pattern.


pat specifies a pattern.


coords identify the element in the pattern to be removed.

Example: ; pattern:remove-element

; 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 center origin)

;; center

(define normal (gvector 0 0 1))

;; normal

(define num-radial 4)

;; num-radial

(define num-angular 5)

;; num-angular

(define spacing 3)

;; spacing

(define pat (pattern:radial


center normal num-radial num-angular spacing))

;; pat

; remove the center element

(set! pat (pattern:remove-element


pat (list 0 0)))

;; #[pattern

;; trans-vec: "DOMAIN(VEC(-1,0,0)*COS

;; (1.256637061435917*X2)*3*X+VEC

;; (0,-1,0)*SIN(1.256637061435917*X2)

;; *3*X+VEC(1,2,3),0,3,0,4)"

;; x-vec: "VEC(-1,0,0)*COS

;; (1.256637061435917*X2)

;; +VEC(0,-1,0)*SIN

;; (1.25663706143591?7*X2)"

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

;; z-vec: "null_law"

;; scale: "null_law"

;; keep: "PIECEWISE(X>0,X,X2<1)"

;; [list]]

; apply the pattern to the prism

(define body (entity:pattern prism pat))

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