Skip to content

Instantly share code, notes, and snippets.

Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@dustinlacewell
dustinlacewell / default.nix
Created December 13, 2018 02:41
frobtads shell.nix
with import <nixpkgs> {};
stdenv.mkDerivation {
name = "frobtabs";
src = fetchFromGitHub {
owner = "realnc";
repo = "frobtads";
rev = "5850ed918c49873d1c11550d386c2f76e9f37fab";
sha256 = "11l2v184zldaijc89ch5yj29x463xrcwh97s7n68d13f7fbj2a7f";
#!/usr/bin/env fsharpi
#I "../../../.nuget/packages/hopac/0.3.21/lib/net45/"
#I "../../../.nuget/packages/hopac.extras/0.3.1/lib/net45"
#r "Hopac.Extras"
#r "Hopac.Platform"
#r "Hopac.Core"
#r "Hopac"
open System
import typetraits
import strutils
import random
import sdl2
import dadren.application
import dadren.scenes
import dadren.utils
main.nim(8, 3) Error: cannot instantiate 'resize'
method draw(self: VSplit[Color], display: var RendererPtr) =
let
mp = self.midpointW(self.ratio)
top = self.region.top
bottom = self.region.bottom
display.setDrawColor(255, 255, 255, 255)
for y in top..bottom:
display.drawPoint(mp, y)
self.backward.draw(display)
type Region*[T: int|float] = object
left*, top*, right*, bottom*: T
proc width*[T](self: Region): T = self.right - self.left
proc height*[T](self: Region): T = self.bottom - self.top
proc midpointW*[T](self: Region[T], position: float): T = self.left + position * self.width[T]()
proc midpointH*[T](self: Region[T], position: float): T = self.top + position * self.height[T]()
import strutils
import random
import sdl2
import dadren.application
import dadren.scenes
import dadren.utils
template `as` (a, b: untyped): untyped = ((b)a)
type
Region*[T: int|float] = object
left, top, right, bottom: T
# then
for node in self.bsp.leaves:
var r: Region[float]
r.left = node.left
r.top = node.top
template `as` (a, b: untyped): untyped = ((b)a)
type
BSPNode[T] = ref object of RootObj
parent: BSPNode[T]
ParentNode[T] = ref object of BSPNode[T]
forward, backward: BSPNode[T]
position: float
Leaf[T]= ref object of BSPNode[T]
content: T