SIF Version 1.0
SIF SFF SIF DSG STL SIF Source

SIF SFF Examples


Contents


Surface Instancing

(* Polyhedral Start for Genus-2 Surface with D3 Symmetry *)
(* 8*2*2*3 triangular patches *) 
(* 2 valence 12 vertices, 3 valence-8 vertices, 3 valence-4 vertices *)
(SIF_SFF 1 0
  (body
    (lump
      (shell
        (def surface S
          (v V1 0 0 1)
          (v V2 1 0 0)
          (v V3 (e 5 -1) 1 (e 24 -1))
          (v V4 (e 14 -1) 1 (e 17 -1))
          (v V5 2 1 0)
          (v V6 0 0 (e 38 -1))
          (v V7 (e 15 -1) 0 (e 33 -1))
          (v V8 (e 26 -1) 0 (e 19 -1))
          (v V9 3 0 0)

          (t V1 V4 V2)
          (t V2 V4 V5)
          (t V5 V4 V8)
          (t V5 V8 V9)
          (t V1 V3 V4)
          (t V4 V3 V7)
          (t V4 V7 V8)
          (t V3 V6 V7)
        )

        (* operator to produce the full symmetry of a triangular prism *)
        (inst surface S )
        (inst surface S (my))
        (inst surface S (rz 120))
        (inst surface S (my) (rz 120))
        (inst surface S (rz 240))
        (inst surface S (my) (rz 240))
        (inst surface S (mz))
        (inst surface S (mz) (my))
        (inst surface S (mz) (rz 120))
        (inst surface S (mz) (my) (rz 120))
        (inst surface S (mz) (rz 240))
        (inst surface S (mz) (my) (rz 240))
      )
    )
  )
)

Seirpinski's Pyramid

# Seirpinski's Pyramid
(SIF_SFF 1 0
  (body
    (lump
      (shell
        (def surface sPyramid
          (v v0 1 0 0)
          (v v1 (e -5 -1) (e 866 -3) 0)
          (v v2 (e -5 -1) (e -866 -3) 0)
          (v v3 0 0 (e 1324 -3))

          (t v0 v1 v3)
          (t v1 v2 v3)
          (t v2 v0 v3)
          (t v2 v1 v0)
        )

        (def surface s0
          (inst surface sPyramid (tv 1 0 0) (sa (e 5 -1)))
          (inst surface sPyramid (tv (e -5 -1) (e 866 -3) 0) (sa (e 5 -1)))
          (inst surface sPyramid (tv (e -5 -1) (e -866 -3) 0) (sa (e 5 -1)))
          (inst surface sPyramid (tv 0 0 (e 1324 -3)) (sa (e 5 -1)))
        )

        (def surface s1
          (inst surface s0 (tv 1 0 0) (sa (e 5 -1)))
          (inst surface s0 (tv (e -5 -1) (e 866 -3) 0) (sa (e 5 -1)))
          (inst surface s0 (tv (e -5 -1) (e -866 -3) 0) (sa (e 5 -1)))
          (inst surface s0 (tv 0 0 (e 1324 -3)) (sa (e 5 -1)))
        )

        (inst surface s1)
      )
    )
  )
)

Cube

# Cube
(SIF_SFF 1 0
  (body
    (lump
      (shell
        (def surface sCube
          (v v0 1 1 0)
          (v v1 -1 1 0)
          (v v2 -1 -1 0)
          (v v3 1 -1 0)

	  (def surface s0 
            (t v0 v1 v2)
            (t v0 v2 v3)
          )

          (def surface s1
            (inst surface s0 (tv 0 0 1))
          )

          (inst surface s1)
          (inst surface s1 (rx 90))
          (inst surface s1 (rx -90))
          (inst surface s1 (rx 180))
          (inst surface s1 (ry 90))
          (inst surface s1 (ry -90))
        )

        (inst surface sCube)
      )
    )
  )
)

Seirpinski's Cube

# Seirpinski's Cube
(SIF_SFF 1 0
  (body
    (lump
      (shell
        (include "cube.sif")

        (def surface s0
          # The Corners
          (inst surface sCube (tv 2 2 2) (sa (e 33333 -5)))
          (inst surface sCube (tv 2 2 -2) (sa (e 33333 -5)))
          (inst surface sCube (tv 2 -2 2) (sa (e 33333 -5)))
          (inst surface sCube (tv 2 -2 -2) (sa (e 33333 -5)))
          (inst surface sCube (tv -2 2 2) (sa (e 33333 -5)))
          (inst surface sCube (tv -2 2 -2) (sa (e 33333 -5)))
          (inst surface sCube (tv -2 -2 2) (sa (e 33333 -5)))
          (inst surface sCube (tv -2 -2 -2) (sa (e 33333 -5)))

          # The Edges
          (inst surface sCube (tv 2 2 0) (sa (e 33333 -5)))
          (inst surface sCube (tv 2 -2 0) (sa (e 33333 -5)))
          (inst surface sCube (tv -2 2 0) (sa (e 33333 -5)))
          (inst surface sCube (tv -2 -2 0) (sa (e 33333 -5)))

          (inst surface sCube (tv 2 0 2) (sa (e 33333 -5)))
          (inst surface sCube (tv 2 0 -2) (sa (e 33333 -5)))
          (inst surface sCube (tv -2 0 2) (sa (e 33333 -5)))
          (inst surface sCube (tv -2 0 -2) (sa (e 33333 -5)))

          (inst surface sCube (tv 0 2 2) (sa (e 33333 -5)))
          (inst surface sCube (tv 0 2 -2) (sa (e 33333 -5)))
          (inst surface sCube (tv 0 -2 2) (sa (e 33333 -5)))
          (inst surface sCube (tv 0 -2 -2) (sa (e 33333 -5)))
        )

        (def surface s1
          # The Corners
          (inst surface s0 (tv 2 2 2) (sa (e 33333 -5)))
          (inst surface s0 (tv 2 2 -2) (sa (e 33333 -5)))
          (inst surface s0 (tv 2 -2 2) (sa (e 33333 -5)))
          (inst surface s0 (tv 2 -2 -2) (sa (e 33333 -5)))
          (inst surface s0 (tv -2 2 2) (sa (e 33333 -5)))
          (inst surface s0 (tv -2 2 -2) (sa (e 33333 -5)))
          (inst surface s0 (tv -2 -2 2) (sa (e 33333 -5)))
          (inst surface s0 (tv -2 -2 -2) (sa (e 33333 -5)))

          # The Edges
          (inst surface s0 (tv 2 2 0) (sa (e 33333 -5)))
          (inst surface s0 (tv 2 -2 0) (sa (e 33333 -5)))
          (inst surface s0 (tv -2 2 0) (sa (e 33333 -5)))
          (inst surface s0 (tv -2 -2 0) (sa (e 33333 -5)))

          (inst surface s0 (tv 2 0 2) (sa (e 33333 -5)))
          (inst surface s0 (tv 2 0 -2) (sa (e 33333 -5)))
          (inst surface s0 (tv -2 0 2) (sa (e 33333 -5)))
          (inst surface s0 (tv -2 0 -2) (sa (e 33333 -5)))

          (inst surface s0 (tv 0 2 2) (sa (e 33333 -5)))
          (inst surface s0 (tv 0 2 -2) (sa (e 33333 -5)))
          (inst surface s0 (tv 0 -2 2) (sa (e 33333 -5)))
          (inst surface s0 (tv 0 -2 -2) (sa (e 33333 -5)))
        )

        (inst surface s1)
      )
    )
  )
)

Square Torus using Facets and General Faces

# Square Torus using the general face construct
(SIF_SFF 1 0
  (body
    (lump
      (shell
        (v v0 3 3 1)
        (v v1 -3 3 1)
        (v v2 -3 -3 1)
        (v v3 3 -3 1)

        (v v4 1 1 1)
        (v v5 -1 1 1)
        (v v6 -1 -1 1)
        (v v7 1 -1 1)

        (v v8 3 3 -1)
        (v v9 -3 3 -1)
        (v v10 -3 -3 -1)
        (v v11 3 -3 -1)

        (v v12 1 1 -1)
        (v v13 -1 1 -1)
        (v v14 -1 -1 -1)
        (v v15 1 -1 -1)

        (face 
          (contour v0 v1 v2 v3)
          (contour v7 v6 v5 v4)
        )
        (face 
          (contour v11 v10 v9 v8)
          (contour v12 v13 v14 v15)
        )

        (* The outside walls *)
	(t v0 v3 v8)
	(t v8 v3 v11)
	(t v3 v2 v11)
	(t v11 v2 v10)
	(t v2 v1 v10)
	(t v10 v1 v9)
	(t v1 v0 v9)
	(t v9 v0 v8)

        (* The walls inside the hole *)
	(t v12 v4 v5)
	(t v12 v5 v13)
	(t v13 v5 v6)
	(t v13 v6 v14)
	(t v14 v6 v7)
	(t v14 v7 v15)
	(t v15 v7 v4)
	(t v15 v4 v12)
      )
    )
  )
)



This page is maintained by Jordan Smith
E-mail: jordans@cs.berkeley.edu
Last modified: 1/11/99

This page was designed and tested under Netscape using common HTML constructs. No browsers are blocked from viewing this page. Please send mail to the maintainer of this page if you find any broken links or errors in the page construction.