screwing around

This commit is contained in:
Peter Braden 2012-01-19 23:12:38 -08:00
parent b038343ad4
commit 3dae57f51c
4 changed files with 24 additions and 14 deletions

View File

@ -4,6 +4,4 @@ var opencv = require('./bindings')
, Matrix = opencv.Matrix , Matrix = opencv.Matrix
var oc = exports = module.exports = opencv; var oc = exports = module.exports = opencv;

View File

@ -3,7 +3,9 @@ var cv = require('./lib/opencv')
console.log(cv.version) console.log(cv.version)
//console.log(cv.Image.prototype);
/*
var im = new cv.Image("./examples/test.jpg") var im = new cv.Image("./examples/test.jpg")
, face_cascade = new cv.CascadeClassifier("./examples/haarcascade_frontalface_alt.xml") , face_cascade = new cv.CascadeClassifier("./examples/haarcascade_frontalface_alt.xml")
@ -15,4 +17,4 @@ var faces = face_cascade.detectMultiScale(im, function(err, faces){
im.save('./out.jpg'); im.save('./out.jpg');
}); });*/

View File

@ -7,30 +7,36 @@ void
Image::Init(Handle<Object> target) { Image::Init(Handle<Object> target) {
HandleScope scope; HandleScope scope;
//Class
v8::Local<v8::FunctionTemplate> t = v8::FunctionTemplate::New(New);
t->SetClassName(v8::String::NewSymbol("Image"));
// Constructor // Constructor
constructor = Persistent<FunctionTemplate>::New(FunctionTemplate::New(Image::New)); constructor = Persistent<FunctionTemplate>::New(t);
constructor->InstanceTemplate()->SetInternalFieldCount(1); constructor->InstanceTemplate()->SetInternalFieldCount(1);
constructor->SetClassName(String::NewSymbol("Image"));
constructor->Inherit(Matrix::constructor); constructor->Inherit(Matrix::constructor);
// Prototype // Prototype
Local<ObjectTemplate> proto = constructor->PrototypeTemplate(); Local<ObjectTemplate> proto = constructor->PrototypeTemplate();
proto->SetAccessor(String::NewSymbol("width"), GetWidth); proto->SetAccessor(String::NewSymbol("width"), GetWidth);
proto->SetAccessor(String::NewSymbol("height"), GetHeight); proto->SetAccessor(String::NewSymbol("height"), GetHeight);
NODE_SET_PROTOTYPE_METHOD(constructor, "save", Save); NODE_SET_PROTOTYPE_METHOD(constructor, "save", Save);
NODE_SET_PROTOTYPE_METHOD(constructor, "ellipse", Ellipse); NODE_SET_PROTOTYPE_METHOD(constructor, "ellipse", Ellipse);
target->Set(String::NewSymbol("Image"), t->GetFunction());
/*proto->SetAccessor(String::NewSymbol("source"), GetSource, SetSource); /*proto->SetAccessor(String::NewSymbol("source"), GetSource, SetSource);
proto->SetAccessor(String::NewSymbol("complete"), GetComplete); proto->SetAccessor(String::NewSymbol("complete"), GetComplete);
proto->SetAccessor(String::NewSymbol("onload"), GetOnload, SetOnload); proto->SetAccessor(String::NewSymbol("onload"), GetOnload, SetOnload);
proto->SetAccessor(String::NewSymbol("onerror"), GetOnerror, SetOnerror);*/ proto->SetAccessor(String::NewSymbol("onerror"), GetOnerror, SetOnerror);*/
target->Set(String::NewSymbol("Image"), constructor->GetFunction());
}; };

View File

@ -8,10 +8,14 @@ void
Matrix::Init(Handle<Object> target) { Matrix::Init(Handle<Object> target) {
HandleScope scope; HandleScope scope;
//Class
v8::Local<v8::FunctionTemplate> m = v8::FunctionTemplate::New(New);
m->SetClassName(v8::String::NewSymbol("Matrix"));
// Constructor // Constructor
constructor = Persistent<FunctionTemplate>::New(FunctionTemplate::New(Matrix::New)); constructor = Persistent<FunctionTemplate>::New(m);
constructor->InstanceTemplate()->SetInternalFieldCount(1); constructor->InstanceTemplate()->SetInternalFieldCount(1);
constructor->SetClassName(String::NewSymbol("Matrix")); //constructor->SetClassName(String::NewSymbol("Matrix"));
// Prototype // Prototype
Local<ObjectTemplate> proto = constructor->PrototypeTemplate(); Local<ObjectTemplate> proto = constructor->PrototypeTemplate();
@ -19,7 +23,7 @@ Matrix::Init(Handle<Object> target) {
NODE_SET_PROTOTYPE_METHOD(constructor, "empty", Empty); NODE_SET_PROTOTYPE_METHOD(constructor, "empty", Empty);
target->Set(String::NewSymbol("Matrix"), constructor->GetFunction()); target->Set(String::NewSymbol("Matrix"), m->GetFunction());
}; };
@ -32,8 +36,8 @@ Matrix::New(const Arguments &args) {
Matrix *mat = new Matrix; Matrix *mat = new Matrix;
mat->Wrap(args.This()); mat->Wrap(args.Holder());
return args.This(); return scope.Close(args.Holder());
} }
Matrix::Matrix(): ObjectWrap() { Matrix::Matrix(): ObjectWrap() {