       (.updateBound))
 
     (doto (Geometry. "triangle" triangle-mesh)
+      (.setMaterial (default-material)))))
+
+
+(defn trianglestripe
+  "Returns a new 2D trianglestripe."
+  [& points]
+  (let [stripe-mesh (Mesh.)
+	points (for [pt points] (if (= 2 (count pt)) (conj (vec pt) 0) pt))
+	size (count points)
+        vertices (float-array (flatten points))
+        tex-cord (float-array (flatten (repeat size [0 0 1])))
+        indexes (int-array
+		 (flatten
+		  (map vector (repeat size 0) (range 1 (dec size)) (range 2 size))))
+        normals (float-array (flatten (repeat (count points) [0 0 1])))]
+
+    (doto ^Mesh stripe-mesh
+      (.setBuffer VertexBuffer$Type/Position 3 vertices)
+      (.setBuffer VertexBuffer$Type/Normal 3 normals)
+      (.setBuffer VertexBuffer$Type/TexCoord 2 tex-cord)
+      (.setBuffer VertexBuffer$Type/Index 1 indexes)
+      (.updateBound))
+
+    (doto (Geometry. "stripe" stripe-mesh)
       (.setMaterial (default-material)))))
 
 

    new-node))


(defn attach
  "Attach a child to the given node."
  [node child]
  (.attachChild node child))



(def n repeat)


(defhigh nn
  [times seq]
  (repeat times (cat seq)))

