view nodejs/canvas.js @ 1136:950076863b7e

Fix the tween calculation for the inbetween frames. Now, we can use primitive instead og group to defin ethe animation. Currently, it has been tested against rectangle only. We need to check others as well.
author wycc
date Tue, 21 Dec 2010 14:35:42 +0800
parents 586e50f82c1f
children
line wrap: on
line source

// -*- indent-tabs-mode: t; tab-width: 8; c-basic-offset: 4; -*-
// vim: sw=4:ts=8:sts=4
var mbfly = require("mbfly");
var sys=require("sys");


function canvas(app,root) {
    this.mb_rt = app.mb_rt;
	this.parent = root;
    this.root = this.mb_rt.coord_new(root);
	this.bg_r = 0;
	this.bg_g = 0;
	this.bg_b = 0;
	this.bg_a = 0;
	this.stroke_r = 0;
	this.stroke_g = 0;
	this.stroke_b = 0;
	this.stroke_a = 0;
	this.stroke_w = 1;
}

canvas.prototype.background=function(r,g,b,a) {
    this.bg_r = r;
	this.bg_g = g;
	this.bg_b = b;
	this.bg_a = a;
}

canvas.prototype.rect=function(x,y,w,h) {
    var rect = this.mb_rt.rect_new(x,y,w,h,0,0);
    var paint = this.mb_rt.paint_color_new(this.bg_r,this.bg_g,this.bg_b,this.bg_a);
	paint.fill(rect);
	this.root.add_shape(rect);
}

canvas.prototype.stroke=function(r,g,b,a) {
    this.stroke_r = r;
    this.stroke_g = g;
    this.stroke_b = b;
    this.stroke_a = a;
}


canvas.prototype.line=function(x1,y1,x2,y2) {
    var s = "M "+x1+","+y1+" L "+x2+","+y2;
    //sys.puts(s);

    var p = this.mb_rt.path_new(s);
	this.root.add_shape(p);
	var paint = this.mb_rt.paint_color_new(this.stroke_r,this.stroke_g,this.stroke_b,this.stroke_a);
	paint.stroke(p);
	p.stroke_width = this.stroke_w;
}

canvas.prototype.strokeWeight=function(w) {
    this.stroke_w = w;
}

canvas.prototype.alpha=function(c) {
}

canvas.prototype.red=function(c) {
}
canvas.prototype.green=function(c) {
}
canvas.prototype.blue=function(c) {
}


canvas.prototype.clear=function() {
    this.root.remove();
    this.root = this.mb_rt.coord_new(this.parent);
}

canvas.prototype.arc=function(x,y,w,h,start,end) {
}

canvas.prototype.ellipse=function(x, y, width, height) {
}

canvas.prototype.point=function(x,y) {
}

canvas.prototype.quad=function(x1,y1,x2,y2,x3,y3,x4,y4) {
}

canvas.prototype.triangle=function(x1,y1,x2,y2,x3,y3) {
}

canvas.prototype.bezier=function(x1, y1, cx1, cy1, cx2, cy2, x2, y2) {
}

canvas.prototype.curveTightness=function(squishy) {
}

canvas.prototype.colorMode=function() {
}

canvas.prototype.fill=function(color) {
}

canvas.prototype.noFill=function() {
}

canvas.prototype.noStroke=function() {
}


exports.canvas = canvas;