diff --git a/src/BackgroundSubtractor.cc b/src/BackgroundSubtractor.cc index 27bc4e3..8ebecd5 100644 --- a/src/BackgroundSubtractor.cc +++ b/src/BackgroundSubtractor.cc @@ -66,7 +66,7 @@ void BackgroundSubtractorWrap::Init(Local target) { Nan::SetPrototypeMethod(ctor, "noiseSigma", NoiseSigma); Nan::SetPrototypeMethod(ctor, "backgroundRatio", BackgroundRatio); - target->Set(Nan::New("BackgroundSubtractor").ToLocalChecked(), ctor->GetFunction( Nan::GetCurrentContext() ).ToLocalChecked()); + target->Set(Nan::GetCurrentContext(), Nan::New("BackgroundSubtractor").ToLocalChecked(), ctor->GetFunction( Nan::GetCurrentContext() ).ToLocalChecked()); } NAN_METHOD(BackgroundSubtractorWrap::New) { diff --git a/src/Calib3D.cc b/src/Calib3D.cc index b4d2745..ef73f2d 100644 --- a/src/Calib3D.cc +++ b/src/Calib3D.cc @@ -14,8 +14,8 @@ inline cv::Size sizeFromArray(Local jsArray) { if (jsArray->IsArray()) { Local v8sz = jsArray->ToObject(Nan::GetCurrentContext()).ToLocalChecked(); - patternSize = cv::Size(v8sz->Get(0)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(), - v8sz->Get(1)->IntegerValue( Nan::GetCurrentContext() ).ToChecked()); + patternSize = cv::Size(v8sz->Get(Nan::GetCurrentContext(),0).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked(), + v8sz->Get(Nan::GetCurrentContext(),1).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked()); } else { JSTHROW_TYPE("Size is not a valid array"); } @@ -50,7 +50,7 @@ inline std::vector points3fFromArray(Local array) { Local pointsArray = Local::Cast(array->ToObject(Nan::GetCurrentContext()).ToLocalChecked()); for (unsigned int i = 0; i < pointsArray->Length(); i++) { - Local pt = pointsArray->Get(i)->ToObject(Nan::GetCurrentContext()).ToLocalChecked(); + Local pt = pointsArray->Get(Nan::GetCurrentContext(),i).ToLocalChecked()->ToObject(Nan::GetCurrentContext()).ToLocalChecked(); points.push_back( cv::Point3f( Nan::To(Nan::Get(pt, Nan::New("x").ToLocalChecked()).ToLocalChecked()).FromJust(), @@ -73,7 +73,7 @@ inline std::vector > points2fFromArrayOfArrays( Local pointsArray = Local::Cast(array->ToObject(Nan::GetCurrentContext()).ToLocalChecked()); for (unsigned int i = 0; i < pointsArray->Length(); i++) { - points.push_back(points2fFromArray(pointsArray->Get(i))); + points.push_back(points2fFromArray(pointsArray->Get(Nan::GetCurrentContext(),i).ToLocalChecked())); } } else { JSTHROW_TYPE("Must pass array of object points for each frame") @@ -89,7 +89,7 @@ inline std::vector > points3fFromArrayOfArrays( Local pointsArray = Local::Cast(array->ToObject(Nan::GetCurrentContext()).ToLocalChecked()); for (unsigned int i = 0; i < pointsArray->Length(); i++) { - points.push_back(points3fFromArray(pointsArray->Get(i))); + points.push_back(points3fFromArray(pointsArray->Get(Nan::GetCurrentContext(),i).ToLocalChecked())); } } else { JSTHROW_TYPE("Must pass array of object points for each frame") @@ -113,7 +113,7 @@ void Calib3D::Init(Local target) { Nan::SetMethod(obj, "computeCorrespondEpilines", ComputeCorrespondEpilines); Nan::SetMethod(obj, "reprojectImageTo3d", ReprojectImageTo3D); - target->Set(Nan::New("calib3d").ToLocalChecked(), obj); + target->Set(Nan::GetCurrentContext(), Nan::New("calib3d").ToLocalChecked(), obj); } // cv::findChessboardCorners @@ -138,18 +138,18 @@ NAN_METHOD(Calib3D::FindChessboardCorners) { // Make the return value Local ret = Nan::New(); - ret->Set(Nan::New("found").ToLocalChecked(), Nan::New(found)); + ret->Set(Nan::GetCurrentContext(), Nan::New("found").ToLocalChecked(), Nan::New(found)); Local cornersArray = Nan::New(corners.size()); for (unsigned int i = 0; i < corners.size(); i++) { Local point_data = Nan::New(); - point_data->Set(Nan::New("x").ToLocalChecked(), Nan::New(corners[i].x)); - point_data->Set(Nan::New("y").ToLocalChecked(), Nan::New(corners[i].y)); + point_data->Set(Nan::GetCurrentContext(), Nan::New("x").ToLocalChecked(), Nan::New(corners[i].x)); + point_data->Set(Nan::GetCurrentContext(), Nan::New("y").ToLocalChecked(), Nan::New(corners[i].y)); - cornersArray->Set(Nan::New(i), point_data); + cornersArray->Set(Nan::GetCurrentContext(), Nan::New(i), point_data); } - ret->Set(Nan::New("corners").ToLocalChecked(), cornersArray); + ret->Set(Nan::GetCurrentContext(), Nan::New("corners").ToLocalChecked(), cornersArray); info.GetReturnValue().Set(ret); } catch (cv::Exception &e) { @@ -225,15 +225,15 @@ NAN_METHOD(Calib3D::CalibrateCamera) { Local ret = Nan::New(); // Reprojection error - ret->Set(Nan::New("reprojectionError").ToLocalChecked(), Nan::New(error)); + ret->Set(Nan::GetCurrentContext(), Nan::New("reprojectionError").ToLocalChecked(), Nan::New(error)); // K Local KMatrixWrap = Matrix::CreateWrappedFromMat(K); - ret->Set(Nan::New("K").ToLocalChecked(), KMatrixWrap); + ret->Set(Nan::GetCurrentContext(), Nan::New("K").ToLocalChecked(), KMatrixWrap); // dist Local distMatrixWrap = Matrix::CreateWrappedFromMat(dist); - ret->Set(Nan::New("distortion").ToLocalChecked(), distMatrixWrap); + ret->Set(Nan::GetCurrentContext(), Nan::New("distortion").ToLocalChecked(), distMatrixWrap); // Per frame R and t, skiping for now @@ -279,11 +279,11 @@ NAN_METHOD(Calib3D::SolvePnP) { // rvec Local rMatrixWrap = Matrix::CreateWrappedFromMat(rvec); - ret->Set(Nan::New("rvec").ToLocalChecked(), rMatrixWrap); + ret->Set(Nan::GetCurrentContext(), Nan::New("rvec").ToLocalChecked(), rMatrixWrap); // tvec Local tMatrixWrap = Matrix::CreateWrappedFromMat(tvec); - ret->Set(Nan::New("tvec").ToLocalChecked(), tMatrixWrap); + ret->Set(Nan::GetCurrentContext(), Nan::New("tvec").ToLocalChecked(), tMatrixWrap); // Return info.GetReturnValue().Set(ret); @@ -409,14 +409,14 @@ NAN_METHOD(Calib3D::StereoCalibrate) { Local FMatrixWrap = Matrix::CreateWrappedFromMat(F); // Add to return object - ret->Set(Nan::New("K1").ToLocalChecked(), K1MatrixWrap); - ret->Set(Nan::New("distortion1").ToLocalChecked(), d1MatrixWrap); - ret->Set(Nan::New("K2").ToLocalChecked(), K2MatrixWrap); - ret->Set(Nan::New("distortion2").ToLocalChecked(), d2MatrixWrap); - ret->Set(Nan::New("R").ToLocalChecked(), RMatrixWrap); - ret->Set(Nan::New("t").ToLocalChecked(), tMatrixWrap); - ret->Set(Nan::New("E").ToLocalChecked(), EMatrixWrap); - ret->Set(Nan::New("F").ToLocalChecked(), FMatrixWrap); + ret->Set(Nan::GetCurrentContext(), Nan::New("K1").ToLocalChecked(), K1MatrixWrap); + ret->Set(Nan::GetCurrentContext(), Nan::New("distortion1").ToLocalChecked(), d1MatrixWrap); + ret->Set(Nan::GetCurrentContext(), Nan::New("K2").ToLocalChecked(), K2MatrixWrap); + ret->Set(Nan::GetCurrentContext(), Nan::New("distortion2").ToLocalChecked(), d2MatrixWrap); + ret->Set(Nan::GetCurrentContext(), Nan::New("R").ToLocalChecked(), RMatrixWrap); + ret->Set(Nan::GetCurrentContext(), Nan::New("t").ToLocalChecked(), tMatrixWrap); + ret->Set(Nan::GetCurrentContext(), Nan::New("E").ToLocalChecked(), EMatrixWrap); + ret->Set(Nan::GetCurrentContext(), Nan::New("F").ToLocalChecked(), FMatrixWrap); // Return info.GetReturnValue().Set(ret); @@ -470,11 +470,11 @@ NAN_METHOD(Calib3D::StereoRectify) { // Make the return object Local ret = Nan::New(); - ret->Set(Nan::New("R1").ToLocalChecked(), Matrix::CreateWrappedFromMat(R1)); - ret->Set(Nan::New("R2").ToLocalChecked(), Matrix::CreateWrappedFromMat(R2)); - ret->Set(Nan::New("P1").ToLocalChecked(), Matrix::CreateWrappedFromMat(P1)); - ret->Set(Nan::New("P2").ToLocalChecked(), Matrix::CreateWrappedFromMat(P2)); - ret->Set(Nan::New("Q").ToLocalChecked(), Matrix::CreateWrappedFromMat(Q)); + ret->Set(Nan::GetCurrentContext(), Nan::New("R1").ToLocalChecked(), Matrix::CreateWrappedFromMat(R1)); + ret->Set(Nan::GetCurrentContext(), Nan::New("R2").ToLocalChecked(), Matrix::CreateWrappedFromMat(R2)); + ret->Set(Nan::GetCurrentContext(), Nan::New("P1").ToLocalChecked(), Matrix::CreateWrappedFromMat(P1)); + ret->Set(Nan::GetCurrentContext(), Nan::New("P2").ToLocalChecked(), Matrix::CreateWrappedFromMat(P2)); + ret->Set(Nan::GetCurrentContext(), Nan::New("Q").ToLocalChecked(), Matrix::CreateWrappedFromMat(Q)); // Return the rectification parameters info.GetReturnValue().Set(ret); @@ -510,11 +510,11 @@ NAN_METHOD(Calib3D::ComputeCorrespondEpilines) { for(unsigned int i = 0; i < lines.size(); i++) { Local line_data = Nan::New(); - line_data->Set(Nan::New("a").ToLocalChecked(), Nan::New(lines[i][0])); - line_data->Set(Nan::New("b").ToLocalChecked(), Nan::New(lines[i][1])); - line_data->Set(Nan::New("c").ToLocalChecked(), Nan::New(lines[i][2])); + line_data->Set(Nan::GetCurrentContext(), Nan::New("a").ToLocalChecked(), Nan::New(lines[i][0])); + line_data->Set(Nan::GetCurrentContext(), Nan::New("b").ToLocalChecked(), Nan::New(lines[i][1])); + line_data->Set(Nan::GetCurrentContext(), Nan::New("c").ToLocalChecked(), Nan::New(lines[i][2])); - linesArray->Set(Nan::New(i), line_data); + linesArray->Set(Nan::GetCurrentContext(), Nan::New(i), line_data); } // Return the lines diff --git a/src/CamShift.cc b/src/CamShift.cc index 12179a4..08bf4dd 100644 --- a/src/CamShift.cc +++ b/src/CamShift.cc @@ -33,7 +33,7 @@ void TrackedObject::Init(Local target) { Nan::SetPrototypeMethod(ctor, "track", Track); - target->Set(Nan::New("TrackedObject").ToLocalChecked(), ctor->GetFunction( Nan::GetCurrentContext() ).ToLocalChecked()); + target->Set(Nan::GetCurrentContext(), Nan::New("TrackedObject").ToLocalChecked(), ctor->GetFunction( Nan::GetCurrentContext() ).ToLocalChecked()); } NAN_METHOD(TrackedObject::New) { @@ -50,10 +50,10 @@ NAN_METHOD(TrackedObject::New) { if (info[1]->IsArray()) { Local v8rec = info[1]->ToObject(Nan::GetCurrentContext()).ToLocalChecked(); r = cv::Rect( - v8rec->Get(0)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(), - v8rec->Get(1)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(), - v8rec->Get(2)->IntegerValue( Nan::GetCurrentContext() ).ToChecked() - v8rec->Get(0)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(), - v8rec->Get(3)->IntegerValue( Nan::GetCurrentContext() ).ToChecked() - v8rec->Get(1)->IntegerValue( Nan::GetCurrentContext() ).ToChecked()); + v8rec->Get(Nan::GetCurrentContext(),0).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked(), + v8rec->Get(Nan::GetCurrentContext(),1).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked(), + v8rec->Get(Nan::GetCurrentContext(),2).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked() - v8rec->Get(Nan::GetCurrentContext(),0).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked(), + v8rec->Get(Nan::GetCurrentContext(),3).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked() - v8rec->Get(Nan::GetCurrentContext(),1).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked()); } else { JSTHROW_TYPE("Must pass rectangle to track") } @@ -61,8 +61,8 @@ NAN_METHOD(TrackedObject::New) { if (info[2]->IsObject()) { Local opts = info[2]->ToObject(Nan::GetCurrentContext()).ToLocalChecked(); - if (opts->Get(Nan::New("channel").ToLocalChecked())->IsString()) { - v8::String::Utf8Value c(v8::Isolate::GetCurrent(),opts->Get(Nan::New("channel").ToLocalChecked())->ToString(Nan::GetCurrentContext()).FromMaybe(v8::Local())); + if (opts->Get(Nan::GetCurrentContext(),Nan::New("channel").ToLocalChecked()).ToLocalChecked()->IsString()) { + v8::String::Utf8Value c(v8::Isolate::GetCurrent(),opts->Get(Nan::GetCurrentContext(),Nan::New("channel").ToLocalChecked()).ToLocalChecked()->ToString(Nan::GetCurrentContext()).FromMaybe(v8::Local())); std::string cc = std::string(*c); if (cc == "hue" || cc == "h") { @@ -166,17 +166,17 @@ NAN_METHOD(TrackedObject::Track) { v8::Local arr = Nan::New(4); - arr->Set(0, Nan::New(bounds.x)); - arr->Set(1, Nan::New(bounds.y)); - arr->Set(2, Nan::New(bounds.x + bounds.width)); - arr->Set(3, Nan::New(bounds.y + bounds.height)); + arr->Set(Nan::GetCurrentContext(),0, Nan::New(bounds.x)); + arr->Set(Nan::GetCurrentContext(),1, Nan::New(bounds.y)); + arr->Set(Nan::GetCurrentContext(),2, Nan::New(bounds.x + bounds.width)); + arr->Set(Nan::GetCurrentContext(),3, Nan::New(bounds.y + bounds.height)); /* cv::Point2f pts[4]; r.points(pts); for (int i = 0; i < 8; i += 2) { - arr->Set(i, Nan::New(pts[i].x)); + arr->Set(Nan::GetCurrentContext(), i, Nan::New(pts[i].x)); arr->Set(i + 1, Nan::New(pts[i].y)); } */ diff --git a/src/CascadeClassifierWrap.cc b/src/CascadeClassifierWrap.cc index 4ffb18c..3fff563 100755 --- a/src/CascadeClassifierWrap.cc +++ b/src/CascadeClassifierWrap.cc @@ -24,7 +24,7 @@ void CascadeClassifierWrap::Init(Local target) { Nan::SetPrototypeMethod(ctor, "detectMultiScale", DetectMultiScale); - target->Set(Nan::New("CascadeClassifier").ToLocalChecked(), ctor->GetFunction( Nan::GetCurrentContext() ).ToLocalChecked()); + target->Set(Nan::GetCurrentContext(), Nan::New("CascadeClassifier").ToLocalChecked(), ctor->GetFunction( Nan::GetCurrentContext() ).ToLocalChecked()); } NAN_METHOD(CascadeClassifierWrap::New) { @@ -95,11 +95,11 @@ public: for (unsigned int i = 0; i < this->res.size(); i++) { v8::Local < v8::Object > x = Nan::New(); - x->Set(Nan::New("x").ToLocalChecked(), Nan::New < Number > (this->res[i].x)); - x->Set(Nan::New("y").ToLocalChecked(), Nan::New < Number > (this->res[i].y)); - x->Set(Nan::New("width").ToLocalChecked(), Nan::New < Number > (this->res[i].width)); - x->Set(Nan::New("height").ToLocalChecked(), Nan::New < Number > (this->res[i].height)); - arr->Set(i, x); + x->Set(Nan::GetCurrentContext(), Nan::New("x").ToLocalChecked(), Nan::New < Number > (this->res[i].x)); + x->Set(Nan::GetCurrentContext(), Nan::New("y").ToLocalChecked(), Nan::New < Number > (this->res[i].y)); + x->Set(Nan::GetCurrentContext(), Nan::New("width").ToLocalChecked(), Nan::New < Number > (this->res[i].width)); + x->Set(Nan::GetCurrentContext(), Nan::New("height").ToLocalChecked(), Nan::New < Number > (this->res[i].height)); + arr->Set(Nan::GetCurrentContext(), i, x); } argv[0] = Nan::Null(); diff --git a/src/Constants.cc b/src/Constants.cc index ab3d62e..df74f84 100644 --- a/src/Constants.cc +++ b/src/Constants.cc @@ -6,16 +6,16 @@ #endif #define CONST(C) \ - obj->Set(Nan::New(#C).ToLocalChecked(), Nan::New(C)); + obj->Set(Nan::GetCurrentContext(), Nan::New(#C).ToLocalChecked(), Nan::New(C)); #define CONST_INT(C) \ - obj->Set(Nan::New(#C).ToLocalChecked(), Nan::New((int)C)); + obj->Set(Nan::GetCurrentContext(), Nan::New(#C).ToLocalChecked(), Nan::New((int)C)); #define CONST_DOUBLE(C) \ - obj->Set(Nan::New(#C).ToLocalChecked(), Nan::New(C)); + obj->Set(Nan::GetCurrentContext(), Nan::New(#C).ToLocalChecked(), Nan::New(C)); #define CONST_ENUM(C) \ - obj->Set(Nan::New(#C).ToLocalChecked(), Nan::New((int)(cv::C))); + obj->Set(Nan::GetCurrentContext(), Nan::New(#C).ToLocalChecked(), Nan::New((int)(cv::C))); void Constants::Init(Local target) { Nan::Persistent inner; @@ -126,10 +126,10 @@ void Constants::Init(Local target) { CONST_ENUM(CMP_LE) CONST_ENUM(CMP_NE) - target->Set(Nan::New("TERM_CRITERIA_EPS").ToLocalChecked(), Nan::New((int)cv::TermCriteria::EPS)); - target->Set(Nan::New("TERM_CRITERIA_COUNT").ToLocalChecked(), Nan::New((int)cv::TermCriteria::COUNT)); + target->Set(Nan::GetCurrentContext(), Nan::New("TERM_CRITERIA_EPS").ToLocalChecked(), Nan::New((int)cv::TermCriteria::EPS)); + target->Set(Nan::GetCurrentContext(), Nan::New("TERM_CRITERIA_COUNT").ToLocalChecked(), Nan::New((int)cv::TermCriteria::COUNT)); - target->Set(Nan::New("Constants").ToLocalChecked(), obj); + target->Set(Nan::GetCurrentContext(), Nan::New("Constants").ToLocalChecked(), obj); } #undef CONST diff --git a/src/Contours.cc b/src/Contours.cc index dec3ebc..0704aec 100755 --- a/src/Contours.cc +++ b/src/Contours.cc @@ -33,7 +33,7 @@ void Contour::Init(Local target) { Nan::SetPrototypeMethod(ctor, "hierarchy", Hierarchy); Nan::SetPrototypeMethod(ctor, "serialize", Serialize); Nan::SetPrototypeMethod(ctor, "deserialize", Deserialize); - target->Set(Nan::New("Contours").ToLocalChecked(), ctor->GetFunction( Nan::GetCurrentContext() ).ToLocalChecked()); + target->Set(Nan::GetCurrentContext(), Nan::New("Contours").ToLocalChecked(), ctor->GetFunction( Nan::GetCurrentContext() ).ToLocalChecked()); }; NAN_METHOD(Contour::New) { @@ -64,8 +64,8 @@ NAN_METHOD(Contour::Point) { cv::Point point = self->contours[pos][index]; Local data = Nan::New(); - data->Set(Nan::New("x").ToLocalChecked(), Nan::New(point.x)); - data->Set(Nan::New("y").ToLocalChecked(), Nan::New(point.y)); + data->Set(Nan::GetCurrentContext(), Nan::New("x").ToLocalChecked(), Nan::New(point.x)); + data->Set(Nan::GetCurrentContext(), Nan::New("y").ToLocalChecked(), Nan::New(point.y)); info.GetReturnValue().Set(data); } @@ -81,10 +81,10 @@ NAN_METHOD(Contour::Points) { for (std::vector::size_type i = 0; i != points.size(); i++) { Local point_data = Nan::New(); - point_data->Set(Nan::New("x").ToLocalChecked(), Nan::New(points[i].x)); - point_data->Set(Nan::New("y").ToLocalChecked(), Nan::New(points[i].y)); + point_data->Set(Nan::GetCurrentContext(), Nan::New("x").ToLocalChecked(), Nan::New(points[i].x)); + point_data->Set(Nan::GetCurrentContext(), Nan::New("y").ToLocalChecked(), Nan::New(points[i].y)); - data->Set(i, point_data); + data->Set(Nan::GetCurrentContext(), i, point_data); } info.GetReturnValue().Set(data); @@ -115,7 +115,7 @@ NAN_METHOD(Contour::Area) { Contour *self = Nan::ObjectWrap::Unwrap(info.This()); int pos = info[0].As()->Value(); - bool orientation = (info.Length() > 1 && info[1]->BooleanValue( Nan::GetCurrentContext() ).FromJust()); + bool orientation = (info.Length() > 1 && info[1]->BooleanValue( v8::Isolate::GetCurrent() )); // info.GetReturnValue().Set(Nan::New(contourArea(self->contours))); info.GetReturnValue().Set(Nan::New(contourArea(cv::Mat(self->contours[pos]), orientation))); @@ -126,7 +126,7 @@ NAN_METHOD(Contour::ArcLength) { Contour *self = Nan::ObjectWrap::Unwrap(info.This()); int pos = info[0].As()->Value(); - bool isClosed = info[1]->BooleanValue( Nan::GetCurrentContext() ).FromJust(); + bool isClosed = info[1]->BooleanValue( v8::Isolate::GetCurrent() ); info.GetReturnValue().Set(Nan::New(arcLength(cv::Mat(self->contours[pos]), isClosed))); } @@ -137,7 +137,7 @@ NAN_METHOD(Contour::ApproxPolyDP) { Contour *self = Nan::ObjectWrap::Unwrap(info.This()); int pos = info[0].As()->Value(); double epsilon = info[1].As()->Value(); - bool isClosed = info[2]->BooleanValue( Nan::GetCurrentContext() ).FromJust(); + bool isClosed = info[2]->BooleanValue( v8::Isolate::GetCurrent() ); cv::Mat approxed; approxPolyDP(cv::Mat(self->contours[pos]), approxed, epsilon, isClosed); @@ -152,7 +152,7 @@ NAN_METHOD(Contour::ConvexHull) { Contour *self = Nan::ObjectWrap::Unwrap(info.This()); int pos = info[0].As()->Value(); - bool clockwise = info[1]->BooleanValue( Nan::GetCurrentContext() ).FromJust(); + bool clockwise = info[1]->BooleanValue( v8::Isolate::GetCurrent() ); cv::Mat hull; cv::convexHull(cv::Mat(self->contours[pos]), hull, clockwise); @@ -170,10 +170,10 @@ NAN_METHOD(Contour::BoundingRect) { cv::Rect bounding = cv::boundingRect(cv::Mat(self->contours[pos])); Local rect = Nan::New(); - rect->Set(Nan::New("x").ToLocalChecked(), Nan::New(bounding.x)); - rect->Set(Nan::New("y").ToLocalChecked(), Nan::New(bounding.y)); - rect->Set(Nan::New("width").ToLocalChecked(), Nan::New(bounding.width)); - rect->Set(Nan::New("height").ToLocalChecked(), Nan::New(bounding.height)); + rect->Set(Nan::GetCurrentContext(), Nan::New("x").ToLocalChecked(), Nan::New(bounding.x)); + rect->Set(Nan::GetCurrentContext(), Nan::New("y").ToLocalChecked(), Nan::New(bounding.y)); + rect->Set(Nan::GetCurrentContext(), Nan::New("width").ToLocalChecked(), Nan::New(bounding.width)); + rect->Set(Nan::GetCurrentContext(), Nan::New("height").ToLocalChecked(), Nan::New(bounding.height)); info.GetReturnValue().Set(rect); } @@ -187,16 +187,16 @@ NAN_METHOD(Contour::MinAreaRect) { cv::RotatedRect minimum = cv::minAreaRect(cv::Mat(self->contours[pos])); Local rect = Nan::New(); - rect->Set(Nan::New("angle").ToLocalChecked(), Nan::New(minimum.angle)); + rect->Set(Nan::GetCurrentContext(), Nan::New("angle").ToLocalChecked(), Nan::New(minimum.angle)); Local size = Nan::New(); - size->Set(Nan::New("height").ToLocalChecked(), Nan::New(minimum.size.height)); - size->Set(Nan::New("width").ToLocalChecked(), Nan::New(minimum.size.width)); - rect->Set(Nan::New("size").ToLocalChecked(), size); + size->Set(Nan::GetCurrentContext(), Nan::New("height").ToLocalChecked(), Nan::New(minimum.size.height)); + size->Set(Nan::GetCurrentContext(), Nan::New("width").ToLocalChecked(), Nan::New(minimum.size.width)); + rect->Set(Nan::GetCurrentContext(), Nan::New("size").ToLocalChecked(), size); Local center = Nan::New(); - center->Set(Nan::New("x").ToLocalChecked(), Nan::New(minimum.center.x)); - center->Set(Nan::New("y").ToLocalChecked(), Nan::New(minimum.center.y)); + center->Set(Nan::GetCurrentContext(), Nan::New("x").ToLocalChecked(), Nan::New(minimum.center.x)); + center->Set(Nan::GetCurrentContext(), Nan::New("y").ToLocalChecked(), Nan::New(minimum.center.y)); v8::Local points = Nan::New(4); @@ -205,12 +205,12 @@ NAN_METHOD(Contour::MinAreaRect) { for (unsigned int i=0; i<4; i++) { Local point = Nan::New(); - point->Set(Nan::New("x").ToLocalChecked(), Nan::New(rect_points[i].x)); - point->Set(Nan::New("y").ToLocalChecked(), Nan::New(rect_points[i].y)); - points->Set(i, point); + point->Set(Nan::GetCurrentContext(), Nan::New("x").ToLocalChecked(), Nan::New(rect_points[i].x)); + point->Set(Nan::GetCurrentContext(), Nan::New("y").ToLocalChecked(), Nan::New(rect_points[i].y)); + points->Set(Nan::GetCurrentContext(), i, point); } - rect->Set(Nan::New("points").ToLocalChecked(), points); + rect->Set(Nan::GetCurrentContext(), Nan::New("points").ToLocalChecked(), points); info.GetReturnValue().Set(rect); } @@ -225,17 +225,17 @@ NAN_METHOD(Contour::FitEllipse) { cv::RotatedRect ellipse = cv::fitEllipse(cv::Mat(self->contours[pos])); Local jsEllipse = Nan::New(); - jsEllipse->Set(Nan::New("angle").ToLocalChecked(), Nan::New(ellipse.angle)); + jsEllipse->Set(Nan::GetCurrentContext(), Nan::New("angle").ToLocalChecked(), Nan::New(ellipse.angle)); Local size = Nan::New(); - size->Set(Nan::New("height").ToLocalChecked(), Nan::New(ellipse.size.height)); - size->Set(Nan::New("width").ToLocalChecked(), Nan::New(ellipse.size.width)); - jsEllipse->Set(Nan::New("size").ToLocalChecked(), size); + size->Set(Nan::GetCurrentContext(), Nan::New("height").ToLocalChecked(), Nan::New(ellipse.size.height)); + size->Set(Nan::GetCurrentContext(), Nan::New("width").ToLocalChecked(), Nan::New(ellipse.size.width)); + jsEllipse->Set(Nan::GetCurrentContext(), Nan::New("size").ToLocalChecked(), size); Local center = Nan::New(); - center->Set(Nan::New("x").ToLocalChecked(), Nan::New(ellipse.center.x)); - center->Set(Nan::New("y").ToLocalChecked(), Nan::New(ellipse.center.y)); - jsEllipse->Set(Nan::New("center").ToLocalChecked(), center); + center->Set(Nan::GetCurrentContext(), Nan::New("x").ToLocalChecked(), Nan::New(ellipse.center.x)); + center->Set(Nan::GetCurrentContext(), Nan::New("y").ToLocalChecked(), Nan::New(ellipse.center.y)); + jsEllipse->Set(Nan::GetCurrentContext(), Nan::New("center").ToLocalChecked(), center); info.GetReturnValue().Set(jsEllipse); } @@ -263,10 +263,10 @@ NAN_METHOD(Contour::Moments) { Local res = Nan::New(); - res->Set(Nan::New("m00").ToLocalChecked(), Nan::New(mu.m00)); - res->Set(Nan::New("m10").ToLocalChecked(), Nan::New(mu.m10)); - res->Set(Nan::New("m01").ToLocalChecked(), Nan::New(mu.m01)); - res->Set(Nan::New("m11").ToLocalChecked(), Nan::New(mu.m11)); + res->Set(Nan::GetCurrentContext(), Nan::New("m00").ToLocalChecked(), Nan::New(mu.m00)); + res->Set(Nan::GetCurrentContext(), Nan::New("m10").ToLocalChecked(), Nan::New(mu.m10)); + res->Set(Nan::GetCurrentContext(), Nan::New("m01").ToLocalChecked(), Nan::New(mu.m01)); + res->Set(Nan::GetCurrentContext(), Nan::New("m11").ToLocalChecked(), Nan::New(mu.m11)); info.GetReturnValue().Set(res); } @@ -281,10 +281,10 @@ NAN_METHOD(Contour::Hierarchy) { Local res = Nan::New(4); - res->Set(0, Nan::New(hierarchy[0])); - res->Set(1, Nan::New(hierarchy[1])); - res->Set(2, Nan::New(hierarchy[2])); - res->Set(3, Nan::New(hierarchy[3])); + res->Set(Nan::GetCurrentContext(),0, Nan::New(hierarchy[0])); + res->Set(Nan::GetCurrentContext(),1, Nan::New(hierarchy[1])); + res->Set(Nan::GetCurrentContext(),2, Nan::New(hierarchy[2])); + res->Set(Nan::GetCurrentContext(),3, Nan::New(hierarchy[3])); info.GetReturnValue().Set(res); } @@ -302,28 +302,28 @@ NAN_METHOD(Contour::Serialize) { for (std::vector::size_type j = 0; j != points.size(); j++) { Local point_data = Nan::New(2); - point_data->Set(0, Nan::New(points[j].x)); - point_data->Set(1, Nan::New(points[j].y)); + point_data->Set(Nan::GetCurrentContext(),0, Nan::New(points[j].x)); + point_data->Set(Nan::GetCurrentContext(),1, Nan::New(points[j].y)); - contour_data->Set(j, point_data); + contour_data->Set(Nan::GetCurrentContext(),j, point_data); } - contours_data->Set(i, contour_data); + contours_data->Set(Nan::GetCurrentContext(), i, contour_data); } Local hierarchy_data = Nan::New(self->hierarchy.size()); for (std::vector::size_type i = 0; i != self->hierarchy.size(); i++) { Local contour_data = Nan::New(4); - contour_data->Set(0, Nan::New(self->hierarchy[i][0])); - contour_data->Set(1, Nan::New(self->hierarchy[i][1])); - contour_data->Set(2, Nan::New(self->hierarchy[i][2])); - contour_data->Set(3, Nan::New(self->hierarchy[i][3])); + contour_data->Set(Nan::GetCurrentContext(),0, Nan::New(self->hierarchy[i][0])); + contour_data->Set(Nan::GetCurrentContext(),1, Nan::New(self->hierarchy[i][1])); + contour_data->Set(Nan::GetCurrentContext(),2, Nan::New(self->hierarchy[i][2])); + contour_data->Set(Nan::GetCurrentContext(),3, Nan::New(self->hierarchy[i][3])); - hierarchy_data->Set(i, contour_data); + hierarchy_data->Set(Nan::GetCurrentContext(), i, contour_data); } Local data = Nan::New(); - data->Set(Nan::New("contours").ToLocalChecked(), contours_data); - data->Set(Nan::New("hierarchy").ToLocalChecked(), hierarchy_data); + data->Set(Nan::GetCurrentContext(), Nan::New("contours").ToLocalChecked(), contours_data); + data->Set(Nan::GetCurrentContext(), Nan::New("hierarchy").ToLocalChecked(), hierarchy_data); info.GetReturnValue().Set(data); } @@ -335,21 +335,21 @@ NAN_METHOD(Contour::Deserialize) { Local data = Local::Cast(info[0]); - Local contours_data = Local::Cast(data->Get(Nan::New("contours").ToLocalChecked())); - Local hierarchy_data = Local::Cast(data->Get(Nan::New("hierarchy").ToLocalChecked())); + Local contours_data = Local::Cast(data->Get(Nan::GetCurrentContext(),Nan::New("contours").ToLocalChecked()).ToLocalChecked()); + Local hierarchy_data = Local::Cast(data->Get(Nan::GetCurrentContext(),Nan::New("hierarchy").ToLocalChecked()).ToLocalChecked()); std::vector > contours_res; int contours_length = contours_data->Length(); for (int i = 0; i < contours_length; i++) { - Local contour_data = Local::Cast(contours_data->Get(i)); + Local contour_data = Local::Cast(contours_data->Get(Nan::GetCurrentContext(),i).ToLocalChecked()); std::vector points; int contour_length = contour_data->Length(); for (int j = 0; j < contour_length; j++) { - Local point_data = Local::Cast(contour_data->Get(j)); - int x = point_data->Get(0)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); - int y = point_data->Get(1)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); + Local point_data = Local::Cast(contour_data->Get(Nan::GetCurrentContext(),j).ToLocalChecked()); + int x = point_data->Get(Nan::GetCurrentContext(),0).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); + int y = point_data->Get(Nan::GetCurrentContext(),1).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); points.push_back(cv::Point(x, y)); } @@ -360,11 +360,11 @@ NAN_METHOD(Contour::Deserialize) { int hierarchy_length = hierarchy_data->Length(); for (int i = 0; i < hierarchy_length; i++) { - Local contour_data = Local::Cast(hierarchy_data->Get(i)); - int a = contour_data->Get(0)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); - int b = contour_data->Get(1)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); - int c = contour_data->Get(2)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); - int d = contour_data->Get(3)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); + Local contour_data = Local::Cast(hierarchy_data->Get(Nan::GetCurrentContext(),i).ToLocalChecked()); + int a = contour_data->Get(Nan::GetCurrentContext(),0).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); + int b = contour_data->Get(Nan::GetCurrentContext(),1).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); + int c = contour_data->Get(Nan::GetCurrentContext(),2).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); + int d = contour_data->Get(Nan::GetCurrentContext(),3).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); hierarchy_res.push_back(cv::Vec4i(a, b, c, d)); } diff --git a/src/FaceRecognizer.cc b/src/FaceRecognizer.cc index 201e3be..3be6431 100644 --- a/src/FaceRecognizer.cc +++ b/src/FaceRecognizer.cc @@ -81,7 +81,7 @@ void FaceRecognizerWrap::Init(Local target) { Nan::SetPrototypeMethod(ctor, "getMat", GetMat); - target->Set(Nan::New("FaceRecognizer").ToLocalChecked(), ctor->GetFunction( Nan::GetCurrentContext() ).ToLocalChecked()); + target->Set(Nan::GetCurrentContext(), Nan::New("FaceRecognizer").ToLocalChecked(), ctor->GetFunction( Nan::GetCurrentContext() ).ToLocalChecked()); }; NAN_METHOD(FaceRecognizerWrap::New) { @@ -191,7 +191,7 @@ Local UnwrapTrainingData(Nan::NAN_METHOD_ARGS_TYPE info, const uint32_t length = tuples->Length(); for (uint32_t i = 0; i < length; ++i) { - const Local val = tuples->Get(i); + const Local val = tuples->Get(Nan::GetCurrentContext(),i).ToLocalChecked(); if (!val->IsArray()) { JSTHROW("train takes a list of [label, image] tuples") @@ -199,12 +199,12 @@ Local UnwrapTrainingData(Nan::NAN_METHOD_ARGS_TYPE info, Local valarr = Local::Cast(val); - if (valarr->Length() != 2 || !valarr->Get(0)->IsInt32()) { + if (valarr->Length() != 2 || !valarr->Get(Nan::GetCurrentContext(),0)->IsInt32()) { JSTHROW("train takes a list of [label, image] tuples") } - int label = valarr->Get(0)->Uint32Value(Nan::GetCurrentContext()).ToChecked(); - cv::Mat im = fromMatrixOrFilename(valarr->Get(1)); //this is ok because we clone the image + int label = valarr->Get(Nan::GetCurrentContext(),0)->Uint32Value(Nan::GetCurrentContext()).ToChecked(); + cv::Mat im = fromMatrixOrFilename(valarr->Get(Nan::GetCurrentContext(),1)); //this is ok because we clone the image im = im.clone(); if (im.channels() == 3) { cv::cvtColor(im, im, CV_RGB2GRAY); @@ -332,8 +332,8 @@ NAN_METHOD(FaceRecognizerWrap::PredictSync) { #endif v8::Local res = Nan::New(); - res->Set(Nan::New("id").ToLocalChecked(), Nan::New(predictedLabel)); - res->Set(Nan::New("confidence").ToLocalChecked(), Nan::New(confidence)); + res->Set(Nan::GetCurrentContext(), Nan::New("id").ToLocalChecked(), Nan::New(predictedLabel)); + res->Set(Nan::GetCurrentContext(), Nan::New("confidence").ToLocalChecked(), Nan::New(confidence)); info.GetReturnValue().Set(res); } @@ -372,8 +372,8 @@ public: matrix = NULL; v8::Local res = Nan::New(); - res->Set(Nan::New("id").ToLocalChecked(), Nan::New(predictedLabel)); - res->Set(Nan::New("confidence").ToLocalChecked(), Nan::New(confidence)); + res->Set(Nan::GetCurrentContext(), Nan::New("id").ToLocalChecked(), Nan::New(predictedLabel)); + res->Set(Nan::GetCurrentContext(), Nan::New("confidence").ToLocalChecked(), Nan::New(confidence)); Local argv[] = { res diff --git a/src/HighGUI.cc b/src/HighGUI.cc index 4ff775c..fec42c8 100644 --- a/src/HighGUI.cc +++ b/src/HighGUI.cc @@ -21,7 +21,7 @@ void NamedWindow::Init(Local target) { Nan::SetPrototypeMethod(ctor, "blockingWaitKey", BlockingWaitKey); Nan::SetPrototypeMethod(ctor, "resizeWindow", ResizeWindow); - target->Set(Nan::New("NamedWindow").ToLocalChecked(), ctor->GetFunction( Nan::GetCurrentContext() ).ToLocalChecked()); + target->Set(Nan::GetCurrentContext(), Nan::New("NamedWindow").ToLocalChecked(), ctor->GetFunction( Nan::GetCurrentContext() ).ToLocalChecked()); }; NAN_METHOD(NamedWindow::New) { diff --git a/src/Histogram.cc b/src/Histogram.cc index debf5ed..e55580c 100644 --- a/src/Histogram.cc +++ b/src/Histogram.cc @@ -9,7 +9,7 @@ void Histogram::Init(Local target) { Nan::SetMethod(obj, "calcHist", CalcHist); Nan::SetMethod(obj, "emd", Emd); - target->Set(Nan::New("histogram").ToLocalChecked(), obj); + target->Set(Nan::GetCurrentContext(), Nan::New("histogram").ToLocalChecked(), obj); } NAN_METHOD(Histogram::CalcHist) { @@ -33,14 +33,14 @@ NAN_METHOD(Histogram::CalcHist) { // in vs, can't create an array of non-constant size; but since we have dims<3, just use 3.. int channels[3]; for (unsigned int i = 0; i < dims; i++) { - channels[i] = nodeChannels->Get(i)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); + channels[i] = nodeChannels->Get(Nan::GetCurrentContext(),i).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); } // Arg 2 is histogram sizes in each dimension Local nodeHistSizes = Local::Cast(info[2]->ToObject(Nan::GetCurrentContext()).ToLocalChecked()); int histSize[3]; for (unsigned int i = 0; i < dims; i++) { - histSize[i] = nodeHistSizes->Get(i)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); + histSize[i] = nodeHistSizes->Get(Nan::GetCurrentContext(),i).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); } // Arg 3 is array of the histogram bin boundaries in each dimension @@ -50,16 +50,16 @@ NAN_METHOD(Histogram::CalcHist) { const float* ranges[3]; for (unsigned int i = 0; i < dims; i++) { - Local nodeRange = Local::Cast(nodeRanges->Get(i)->ToObject(Nan::GetCurrentContext()).ToLocalChecked()); - float lower = nodeRange->Get(0).As()->Value(); - float higher = nodeRange->Get(1).As()->Value(); + Local nodeRange = Local::Cast(nodeRanges->Get(Nan::GetCurrentContext(),i).ToLocalChecked()->ToObject(Nan::GetCurrentContext()).ToLocalChecked()); + float lower = nodeRange->Get(Nan::GetCurrentContext(),0).ToLocalChecked().As()->Value(); + float higher = nodeRange->Get(Nan::GetCurrentContext(),1).ToLocalChecked().As()->Value(); histRanges[i][0] = lower; histRanges[i][1] = higher; ranges[i] = histRanges[i]; } // Arg 4 is uniform flag - bool uniform = info[4]->BooleanValue( Nan::GetCurrentContext() ).FromJust(); + bool uniform = info[4]->BooleanValue( v8::Isolate::GetCurrent() ); // Make a mat to hold the result image cv::Mat outputHist; @@ -72,21 +72,21 @@ NAN_METHOD(Histogram::CalcHist) { for (unsigned int i=0; i < (unsigned int) histSize[0]; i++) { if(dims <= 1){ - arr->Set(i, Nan::New(outputHist.at(i))); + arr->Set(Nan::GetCurrentContext(), i, Nan::New(outputHist.at(i))); } else { v8::Local arr2 = Nan::New(dims); for (unsigned int j=0; j < (unsigned int) histSize[1]; j++) { if(dims <= 2){ - arr2->Set(j, Nan::New(outputHist.at(i,j))); + arr2->Set(Nan::GetCurrentContext(),j, Nan::New(outputHist.at(i,j))); } else { v8::Local arr3 = Nan::New(dims); for (unsigned int k=0; k < (unsigned int) histSize[1]; k++) { - arr3->Set(k, Nan::New(outputHist.at(i,j,k))); + arr3->Set(Nan::GetCurrentContext(),k, Nan::New(outputHist.at(i,j,k))); } - arr2->Set(j, arr3); + arr2->Set(Nan::GetCurrentContext(),j, arr3); } } - arr->Set(i, arr2); + arr->Set(Nan::GetCurrentContext(), i, arr2); } } diff --git a/src/ImgProc.cc b/src/ImgProc.cc index 898b13e..aa952c8 100644 --- a/src/ImgProc.cc +++ b/src/ImgProc.cc @@ -14,7 +14,7 @@ void ImgProc::Init(Local target) { Nan::SetMethod(obj, "distanceTransform", DistanceTransform); Nan::SetMethod(obj, "getStructuringElement", GetStructuringElement); - target->Set(Nan::New("imgproc").ToLocalChecked(), obj); + target->Set(Nan::GetCurrentContext(), Nan::New("imgproc").ToLocalChecked(), obj); } // cv::distanceTransform @@ -109,7 +109,7 @@ NAN_METHOD(ImgProc::InitUndistortRectifyMap) { cv::Size imageSize; if (info[4]->IsArray()) { Local v8sz = info[4]->ToObject(Nan::GetCurrentContext()).ToLocalChecked(); - imageSize = cv::Size(v8sz->Get(1)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(), v8sz->Get(0)->IntegerValue( Nan::GetCurrentContext() ).ToChecked()); + imageSize = cv::Size(v8sz->Get(Nan::GetCurrentContext(),1).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked(), v8sz->Get(Nan::GetCurrentContext(),0).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked()); } else { JSTHROW_TYPE("Must pass image size"); } @@ -129,8 +129,8 @@ NAN_METHOD(ImgProc::InitUndistortRectifyMap) { // Make a return object with the two maps Local ret = Nan::New(); - ret->Set(Nan::New("map1").ToLocalChecked(), map1Wrap); - ret->Set(Nan::New("map2").ToLocalChecked(), map2Wrap); + ret->Set(Nan::GetCurrentContext(), Nan::New("map1").ToLocalChecked(), map1Wrap); + ret->Set(Nan::GetCurrentContext(), Nan::New("map2").ToLocalChecked(), map2Wrap); // Return the maps info.GetReturnValue().Set(ret); @@ -206,7 +206,7 @@ NAN_METHOD(ImgProc::GetStructuringElement) { JSTHROW_TYPE("'ksize' argument must be a 2 double array"); } Local v8sz = info[1]->ToObject(Nan::GetCurrentContext()).ToLocalChecked(); - ksize = cv::Size(v8sz->Get(0)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(), v8sz->Get(1)->IntegerValue( Nan::GetCurrentContext() ).ToChecked()); + ksize = cv::Size(v8sz->Get(Nan::GetCurrentContext(),0).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked(), v8sz->Get(Nan::GetCurrentContext(),1).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked()); // GetStructuringElement cv::Mat mat = cv::getStructuringElement(shape, ksize); diff --git a/src/LDAWrap.cc b/src/LDAWrap.cc index a9de8cf..1db6720 100644 --- a/src/LDAWrap.cc +++ b/src/LDAWrap.cc @@ -28,7 +28,7 @@ void LDAWrap::Init(Local target) { Nan::SetMethod(ctor, "subspaceProject", SubspaceProject); Nan::SetMethod(ctor, "subspaceReconstruct", SubspaceReconstruct); - target->Set(Nan::New("LDA").ToLocalChecked(), ctor->GetFunction( Nan::GetCurrentContext() ).ToLocalChecked()); + target->Set(Nan::GetCurrentContext(), Nan::New("LDA").ToLocalChecked(), ctor->GetFunction( Nan::GetCurrentContext() ).ToLocalChecked()); }; NAN_METHOD(LDAWrap::New) { diff --git a/src/Matrix.cc b/src/Matrix.cc index fe8215a..5ef541c 100755 --- a/src/Matrix.cc +++ b/src/Matrix.cc @@ -133,7 +133,7 @@ void Matrix::Init(Local target) { Nan::SetPrototypeMethod(ctor, "div", Div); Nan::SetPrototypeMethod(ctor, "pow", Pow); - target->Set(Nan::New("Matrix").ToLocalChecked(), ctor->GetFunction( Nan::GetCurrentContext() ).ToLocalChecked()); + Nan::Set(target, Nan::New("Matrix").ToLocalChecked(), ctor->GetFunction( Nan::GetCurrentContext() ).ToLocalChecked()); }; NAN_METHOD(Matrix::New) { @@ -225,14 +225,20 @@ Matrix::Matrix(int rows, int cols, int type, Local scalarObj) { mat = cv::Mat(rows, cols, type); Nan::AdjustExternalMemory(mat.dataend - mat.datastart); if (mat.channels() == 3) { - mat.setTo(cv::Scalar(scalarObj->Get(0)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(), - scalarObj->Get(1)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(), - scalarObj->Get(2)->IntegerValue( Nan::GetCurrentContext() ).ToChecked())); + mat.setTo(cv::Scalar( + Nan::To( Nan::Get(scalarObj,0).ToLocalChecked() ).FromJust(), + Nan::To( Nan::Get(scalarObj,1).ToLocalChecked() ).FromJust(), + Nan::To( Nan::Get(scalarObj,2).ToLocalChecked() ).FromJust() + )); } else if (mat.channels() == 2) { - mat.setTo(cv::Scalar(scalarObj->Get(0)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(), - scalarObj->Get(1)->IntegerValue( Nan::GetCurrentContext() ).ToChecked())); + mat.setTo(cv::Scalar( + Nan::To( Nan::Get(scalarObj,0).ToLocalChecked() ).FromJust(), + Nan::To( Nan::Get(scalarObj,1).ToLocalChecked() ).FromJust() + )); } else if (mat.channels() == 1) { - mat.setTo(cv::Scalar(scalarObj->Get(0)->IntegerValue( Nan::GetCurrentContext() ).ToChecked())); + mat.setTo(cv::Scalar( + Nan::To( Nan::Get(scalarObj,0).ToLocalChecked() ).FromJust() + )); } else { Nan::ThrowError("Only 1-3 channels are supported"); } @@ -305,13 +311,13 @@ NAN_METHOD(Matrix::Pixel) { if (self->mat.channels() == 3) { self->mat.at(y, x)[0] = - (uchar) objColor->Get(0)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); + (uchar) Nan::To( Nan::Get(objColor,0).ToLocalChecked() ).FromJust(); self->mat.at(y, x)[1] = - (uchar) objColor->Get(1)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); + (uchar) Nan::To( Nan::Get(objColor,1).ToLocalChecked() ).FromJust(); self->mat.at(y, x)[2] = - (uchar) objColor->Get(2)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); + (uchar) Nan::To( Nan::Get(objColor,2).ToLocalChecked() ).FromJust(); } else if (self->mat.channels() == 1) - self->mat.at(y, x) = (uchar) objColor->Get(0)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); + self->mat.at(y, x) = Nan::To( Nan::Get(objColor,0).ToLocalChecked() ).FromJust();; info.GetReturnValue().Set(info[2]->ToObject(Nan::GetCurrentContext()).ToLocalChecked()); } else { @@ -319,9 +325,9 @@ NAN_METHOD(Matrix::Pixel) { cv::Vec3b intensity = self->mat.at(y, x); v8::Local < v8::Array > arr = Nan::New(3); - arr->Set(0, Nan::New(intensity[0])); - arr->Set(1, Nan::New(intensity[1])); - arr->Set(2, Nan::New(intensity[2])); + Nan::Set(arr, 0, Nan::New(intensity[0])); + Nan::Set(arr, 1, Nan::New(intensity[1])); + Nan::Set(arr, 2, Nan::New(intensity[2])); info.GetReturnValue().Set(arr); } else if (self->mat.channels() == 1) { uchar intensity = self->mat.at(y, x); @@ -353,17 +359,17 @@ NAN_METHOD(Matrix::GetPixel) { if (self->mat.channels() == 4) { v8::Local < v8::Array > arr = Nan::New(4); cv::Vec4b pixel = self->mat.at(y, x); - arr->Set(0, Nan::New((double) pixel.val[0])); - arr->Set(1, Nan::New((double) pixel.val[1])); - arr->Set(2, Nan::New((double) pixel.val[2])); - arr->Set(3, Nan::New((double) pixel.val[3])); + Nan::Set(arr, 0, Nan::New((double) pixel.val[0])); + Nan::Set(arr, 1, Nan::New((double) pixel.val[1])); + Nan::Set(arr, 2, Nan::New((double) pixel.val[2])); + Nan::Set(arr, 3, Nan::New((double) pixel.val[3])); info.GetReturnValue().Set(arr); } else if (self->mat.channels() == 3) { v8::Local < v8::Array > arr = Nan::New(3); cv::Vec3b pixel = self->mat.at(y, x); - arr->Set(0, Nan::New((double) pixel.val[0])); - arr->Set(1, Nan::New((double) pixel.val[1])); - arr->Set(2, Nan::New((double) pixel.val[2])); + Nan::Set(arr, 0, Nan::New((double) pixel.val[0])); + Nan::Set(arr, 1, Nan::New((double) pixel.val[1])); + Nan::Set(arr, 2, Nan::New((double) pixel.val[2])); info.GetReturnValue().Set(arr); } else if(self->mat.channels() == 1) { int pixel = (int)self->mat.at(y, x); @@ -439,7 +445,7 @@ NAN_METHOD(Matrix::GetData) { } v8::Local globalObj = Nan::GetCurrentContext()->Global(); - v8::Local bufferConstructor = v8::Local::Cast(globalObj->Get(Nan::New("Buffer").ToLocalChecked())); + v8::Local bufferConstructor = v8::Local::Cast(Nan::Get(globalObj,Nan::New("Buffer").ToLocalChecked()).ToLocalChecked()); v8::Local constructorArgs[3] = {buf, Nan::New((unsigned) size), Nan::New(0)}; v8::Local actualBuffer = Nan::NewInstance(bufferConstructor, 3, constructorArgs).ToLocalChecked(); @@ -596,8 +602,8 @@ NAN_METHOD(Matrix::Size) { SETUP_FUNCTION(Matrix) v8::Local < v8::Array > arr = Nan::New(2); - arr->Set(0, Nan::New(self->mat.size().height)); - arr->Set(1, Nan::New(self->mat.size().width)); + Nan::Set(arr, 0, Nan::New(self->mat.size().height)); + Nan::Set(arr, 1, Nan::New(self->mat.size().width)); info.GetReturnValue().Set(arr); } @@ -646,7 +652,7 @@ NAN_METHOD(Matrix::Row) { for (int x = 0; x < width; x++) { double v = Matrix::DblGet(self->mat, y, x); - arr->Set(x, Nan::New(v)); + Nan::Set(arr, x, Nan::New(v)); } info.GetReturnValue().Set(arr); @@ -664,25 +670,25 @@ NAN_METHOD(Matrix::PixelRow) { for (int x = 0; x < width; x++) { cv::Vec4b pixel = self->mat.at(y, x); int offset = x * 4; - arr->Set(offset, Nan::New((double) pixel.val[0])); - arr->Set(offset + 1, Nan::New((double) pixel.val[1])); - arr->Set(offset + 2, Nan::New((double) pixel.val[2])); - arr->Set(offset + 3, Nan::New((double) pixel.val[3])); + Nan::Set(arr, offset, Nan::New((double) pixel.val[0])); + Nan::Set(arr, offset + 1, Nan::New((double) pixel.val[1])); + Nan::Set(arr, offset + 2, Nan::New((double) pixel.val[2])); + Nan::Set(arr, offset + 3, Nan::New((double) pixel.val[3])); } } else if(self->mat.channels() == 3){ arr = Nan::New(width * 3); for (int x = 0; x < width; x++) { cv::Vec3b pixel = self->mat.at(y, x); int offset = x * 3; - arr->Set(offset, Nan::New((double) pixel.val[0])); - arr->Set(offset + 1, Nan::New((double) pixel.val[1])); - arr->Set(offset + 2, Nan::New((double) pixel.val[2])); + Nan::Set(arr, offset, Nan::New((double) pixel.val[0])); + Nan::Set(arr, offset + 1, Nan::New((double) pixel.val[1])); + Nan::Set(arr, offset + 2, Nan::New((double) pixel.val[2])); } } else if(self->mat.channels() == 1){ arr = Nan::New(width); for (int x = 0; x < width; x++) { int pixel = (int)self->mat.at(y, x); - arr->Set(x, Nan::New(pixel)); + Nan::Set(arr, x, Nan::New(pixel)); } } else { Nan::ThrowTypeError("Only 4, 3 and 1 channel matrix are supported"); @@ -700,7 +706,7 @@ NAN_METHOD(Matrix::Col) { for (int y = 0; y < height; y++) { double v = Matrix::DblGet(self->mat, y, x); - arr->Set(y, Nan::New(v)); + Nan::Set(arr, y, Nan::New(v)); } info.GetReturnValue().Set(arr); } @@ -717,25 +723,25 @@ NAN_METHOD(Matrix::PixelCol) { for (int y = 0; y < height; y++) { cv::Vec4b pixel = self->mat.at(y, x); int offset = y * 4; - arr->Set(offset, Nan::New((double) pixel.val[0])); - arr->Set(offset + 1, Nan::New((double) pixel.val[1])); - arr->Set(offset + 2, Nan::New((double) pixel.val[2])); - arr->Set(offset + 3, Nan::New((double) pixel.val[3])); + Nan::Set(arr, offset, Nan::New((double) pixel.val[0])); + Nan::Set(arr, offset + 1, Nan::New((double) pixel.val[1])); + Nan::Set(arr, offset + 2, Nan::New((double) pixel.val[2])); + Nan::Set(arr, offset + 3, Nan::New((double) pixel.val[3])); } } else if (self->mat.channels() == 3) { arr = Nan::New(height * 3); for (int y = 0; y < height; y++) { cv::Vec3b pixel = self->mat.at(y, x); int offset = y * 3; - arr->Set(offset, Nan::New((double) pixel.val[0])); - arr->Set(offset + 1, Nan::New((double) pixel.val[1])); - arr->Set(offset + 2, Nan::New((double) pixel.val[2])); + Nan::Set(arr, offset, Nan::New((double) pixel.val[0])); + Nan::Set(arr, offset + 1, Nan::New((double) pixel.val[1])); + Nan::Set(arr, offset + 2, Nan::New((double) pixel.val[2])); } } else if(self->mat.channels() == 1) { arr = Nan::New(height); for (int y = 0; y < height; y++) { int pixel = (int)self->mat.at(y, x); - arr->Set(y, Nan::New(pixel)); + Nan::Set(arr, y, Nan::New(pixel)); } } else { Nan::ThrowTypeError("Only 4, 3 and 1 channel matrix are supported"); @@ -788,19 +794,19 @@ NAN_METHOD(Matrix::ToBuffer) { // If the extension (image format) is provided if (options->Has( Nan::GetCurrentContext(), Nan::New("ext").ToLocalChecked()).ToChecked() ) { v8::String::Utf8Value str(v8::Isolate::GetCurrent(), - options->Get(Nan::New("ext").ToLocalChecked())->ToString(Nan::GetCurrentContext()).FromMaybe(v8::Local())); + options->Get(Nan::GetCurrentContext(), Nan::New("ext").ToLocalChecked()).ToLocalChecked()->ToString(Nan::GetCurrentContext()).FromMaybe(v8::Local())); optExt = *str; ext = (const char *) optExt.c_str(); } if (options->Has( Nan::GetCurrentContext(),Nan::New("jpegQuality").ToLocalChecked()).ToChecked() ) { int compression = - options->Get(Nan::New("jpegQuality").ToLocalChecked())->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); + options->Get(Nan::GetCurrentContext(), Nan::New("jpegQuality").ToLocalChecked()).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); params.push_back(CV_IMWRITE_JPEG_QUALITY); params.push_back(compression); } if (options->Has( Nan::GetCurrentContext(),Nan::New("pngCompression").ToLocalChecked()).ToChecked() ) { int compression = - options->Get(Nan::New("pngCompression").ToLocalChecked())->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); + options->Get(Nan::GetCurrentContext(), Nan::New("pngCompression").ToLocalChecked()).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); params.push_back(CV_IMWRITE_PNG_COMPRESSION); params.push_back(compression); } @@ -817,7 +823,7 @@ NAN_METHOD(Matrix::ToBuffer) { v8::Local < v8::Object > globalObj = Nan::GetCurrentContext()->Global(); v8::Local < v8::Function > bufferConstructor = v8::Local < v8::Function - > ::Cast(globalObj->Get(Nan::New("Buffer").ToLocalChecked())); + > ::Cast(globalObj->Get(Nan::GetCurrentContext(), Nan::New("Buffer").ToLocalChecked()).ToLocalChecked()); v8::Local constructorArgs[3] = {buf, Nan::New((unsigned)vec.size()), Nan::New(0)}; v8::Local < v8::Object > actualBuffer = Nan::NewInstance(bufferConstructor, 3, constructorArgs).ToLocalChecked(); @@ -857,7 +863,7 @@ public: memcpy(data, &res[0], res.size()); v8::Local globalObj = Nan::GetCurrentContext()->Global(); - v8::Local bufferConstructor = v8::Local::Cast(globalObj->Get(Nan::New("Buffer").ToLocalChecked())); + v8::Local bufferConstructor = v8::Local::Cast(globalObj->Get(Nan::GetCurrentContext(), Nan::New("Buffer").ToLocalChecked()).ToLocalChecked()); v8::Local constructorArgs[3] = {buf, Nan::New((unsigned)res.size()), Nan::New(0)}; v8::Local actualBuffer = Nan::NewInstance(bufferConstructor, 3, constructorArgs).ToLocalChecked();; @@ -896,19 +902,19 @@ NAN_METHOD(Matrix::ToBufferAsync) { // If the extension (image format) is provided if (options->Has( Nan::GetCurrentContext(),Nan::New("ext").ToLocalChecked()).ToChecked() ) { v8::String::Utf8Value str(v8::Isolate::GetCurrent(), - options->Get(Nan::New("ext").ToLocalChecked())->ToString(Nan::GetCurrentContext()).FromMaybe(v8::Local())); + options->Get(Nan::GetCurrentContext(), Nan::New("ext").ToLocalChecked()).ToLocalChecked()->ToString(Nan::GetCurrentContext()).FromMaybe(v8::Local())); std::string str2 = std::string(*str); ext = str2; } if (options->Has( Nan::GetCurrentContext(),Nan::New("jpegQuality").ToLocalChecked()).ToChecked() ) { int compression = - options->Get(Nan::New("jpegQuality").ToLocalChecked())->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); + options->Get(Nan::GetCurrentContext(), Nan::New("jpegQuality").ToLocalChecked()).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); params.push_back(CV_IMWRITE_JPEG_QUALITY); params.push_back(compression); } if (options->Has( Nan::GetCurrentContext(),Nan::New("pngCompression").ToLocalChecked()).ToChecked() ) { int compression = - options->Get(Nan::New("pngCompression").ToLocalChecked())->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); + options->Get(Nan::GetCurrentContext(), Nan::New("pngCompression").ToLocalChecked()).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); params.push_back(CV_IMWRITE_PNG_COMPRESSION); params.push_back(compression); } @@ -939,36 +945,36 @@ NAN_METHOD(Matrix::Ellipse) { v8::Local < v8::Object > options = v8::Local::Cast(info[0]); if (options->Has( Nan::GetCurrentContext(),Nan::New("center").ToLocalChecked()).ToChecked() ) { Local < Object > center = - options->Get(Nan::New("center").ToLocalChecked())->ToObject(Nan::GetCurrentContext()).ToLocalChecked(); - x = center->Get(Nan::New("x").ToLocalChecked())->Uint32Value(Nan::GetCurrentContext()).ToChecked(); - y = center->Get(Nan::New("y").ToLocalChecked())->Uint32Value(Nan::GetCurrentContext()).ToChecked(); + options->Get(Nan::GetCurrentContext(), Nan::New("center").ToLocalChecked()).ToLocalChecked()->ToObject(Nan::GetCurrentContext()).ToLocalChecked(); + x = center->Get(Nan::GetCurrentContext(), Nan::New("x").ToLocalChecked()).ToLocalChecked()->Uint32Value(Nan::GetCurrentContext()).ToChecked(); + y = center->Get(Nan::GetCurrentContext(), Nan::New("y").ToLocalChecked()).ToLocalChecked()->Uint32Value(Nan::GetCurrentContext()).ToChecked(); } if (options->Has( Nan::GetCurrentContext(),Nan::New("axes").ToLocalChecked()).ToChecked() ) { - Local < Object > axes = options->Get(Nan::New("axes").ToLocalChecked())->ToObject(Nan::GetCurrentContext()).ToLocalChecked(); - width = axes->Get(Nan::New("width").ToLocalChecked())->Uint32Value(Nan::GetCurrentContext()).ToChecked(); - height = axes->Get(Nan::New("height").ToLocalChecked())->Uint32Value(Nan::GetCurrentContext()).ToChecked(); + Local < Object > axes = options->Get(Nan::GetCurrentContext(), Nan::New("axes").ToLocalChecked()).ToLocalChecked()->ToObject(Nan::GetCurrentContext()).ToLocalChecked(); + width = axes->Get(Nan::GetCurrentContext(), Nan::New("width").ToLocalChecked()).ToLocalChecked()->Uint32Value(Nan::GetCurrentContext()).ToChecked(); + height = axes->Get(Nan::GetCurrentContext(), Nan::New("height").ToLocalChecked()).ToLocalChecked()->Uint32Value(Nan::GetCurrentContext()).ToChecked(); } if (options->Has( Nan::GetCurrentContext(),Nan::New("thickness").ToLocalChecked()).ToChecked() ) { - thickness = options->Get(Nan::New("thickness").ToLocalChecked())->Uint32Value(Nan::GetCurrentContext()).ToChecked(); + thickness = options->Get(Nan::GetCurrentContext(), Nan::New("thickness").ToLocalChecked()).ToLocalChecked()->Uint32Value(Nan::GetCurrentContext()).ToChecked(); } if (options->Has( Nan::GetCurrentContext(),Nan::New("angle").ToLocalChecked()).ToChecked() ) { - angle = options->Get(Nan::New("angle").ToLocalChecked()).As()->Value(); + angle = options->Get(Nan::GetCurrentContext(), Nan::New("angle").ToLocalChecked()).ToLocalChecked().As()->Value(); } if (options->Has( Nan::GetCurrentContext(),Nan::New("startAngle").ToLocalChecked()).ToChecked() ) { - startAngle = options->Get(Nan::New("startAngle").ToLocalChecked()).As()->Value(); + startAngle = options->Get(Nan::GetCurrentContext(), Nan::New("startAngle").ToLocalChecked()).ToLocalChecked().As()->Value(); } if (options->Has( Nan::GetCurrentContext(),Nan::New("endAngle").ToLocalChecked()).ToChecked() ) { - endAngle = options->Get(Nan::New("endAngle").ToLocalChecked()).As()->Value(); + endAngle = options->Get(Nan::GetCurrentContext(), Nan::New("endAngle").ToLocalChecked()).ToLocalChecked().As()->Value(); } if (options->Has( Nan::GetCurrentContext(),Nan::New("lineType").ToLocalChecked()).ToChecked() ) { - lineType = options->Get(Nan::New("lineType").ToLocalChecked())->Uint32Value(Nan::GetCurrentContext()).ToChecked(); + lineType = options->Get(Nan::GetCurrentContext(), Nan::New("lineType").ToLocalChecked()).ToLocalChecked()->Uint32Value(Nan::GetCurrentContext()).ToChecked(); } if (options->Has( Nan::GetCurrentContext(),Nan::New("shift").ToLocalChecked()).ToChecked() ) { - shift = options->Get(Nan::New("shift").ToLocalChecked())->Uint32Value(Nan::GetCurrentContext()).ToChecked(); + shift = options->Get(Nan::GetCurrentContext(), Nan::New("shift").ToLocalChecked()).ToLocalChecked()->Uint32Value(Nan::GetCurrentContext()).ToChecked(); } if (options->Has( Nan::GetCurrentContext(),Nan::New("color").ToLocalChecked()).ToChecked() ) { Local < Object > objColor = - options->Get(Nan::New("color").ToLocalChecked())->ToObject(Nan::GetCurrentContext()).ToLocalChecked(); + options->Get(Nan::GetCurrentContext(), Nan::New("color").ToLocalChecked()).ToLocalChecked()->ToObject(Nan::GetCurrentContext()).ToLocalChecked(); color = setColor(objColor); } } else { @@ -1005,11 +1011,11 @@ NAN_METHOD(Matrix::Rectangle) { color = setColor(objColor); } - int x = xy->Get(0)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); - int y = xy->Get(1)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); + int x = xy->Get(Nan::GetCurrentContext(),0).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); + int y = xy->Get(Nan::GetCurrentContext(),1).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); - int width = width_height->Get(0)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); - int height = width_height->Get(1)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); + int width = width_height->Get(Nan::GetCurrentContext(),0).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); + int height = width_height->Get(Nan::GetCurrentContext(),1).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); int thickness = 1; @@ -1037,11 +1043,11 @@ NAN_METHOD(Matrix::Line) { color = setColor(objColor); } - int x1 = xy1->Get(0)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); - int y1 = xy1->Get(1)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); + int x1 = xy1->Get(Nan::GetCurrentContext(),0).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); + int y1 = xy1->Get(Nan::GetCurrentContext(),1).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); - int x2 = xy2->Get(0)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); - int y2 = xy2->Get(1)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); + int x2 = xy2->Get(Nan::GetCurrentContext(),0).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); + int y2 = xy2->Get(Nan::GetCurrentContext(),1).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); int thickness = 1; @@ -1063,14 +1069,14 @@ NAN_METHOD(Matrix::FillPoly) { cv::Point **polygons = new cv::Point*[polyArray->Length()]; int *polySizes = new int[polyArray->Length()]; for (unsigned int i = 0; i < polyArray->Length(); i++) { - Local singlePoly = Local ::Cast(polyArray->Get(i)->ToObject(Nan::GetCurrentContext()).ToLocalChecked()); + Local singlePoly = Local ::Cast(polyArray->Get(Nan::GetCurrentContext(),i).ToLocalChecked()->ToObject(Nan::GetCurrentContext()).ToLocalChecked()); polygons[i] = new cv::Point[singlePoly->Length()]; polySizes[i] = singlePoly->Length(); for (unsigned int j = 0; j < singlePoly->Length(); j++) { - Local point = Local ::Cast(singlePoly->Get(j)->ToObject(Nan::GetCurrentContext()).ToLocalChecked()); - polygons[i][j].x = point->Get(0)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); - polygons[i][j].y = point->Get(1)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); + Local point = Local ::Cast(singlePoly->Get(Nan::GetCurrentContext(),j).ToLocalChecked()->ToObject(Nan::GetCurrentContext()).ToLocalChecked()); + polygons[i][j].x = point->Get(Nan::GetCurrentContext(),0).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); + polygons[i][j].y = point->Get(Nan::GetCurrentContext(),1).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); } } @@ -1258,8 +1264,8 @@ NAN_METHOD(Matrix::GaussianBlur) { } Local array = Nan::To(info[0]).ToLocalChecked(); // TODO: Length check - Local x = array->Get(0); - Local y = array->Get(1); + Local x = array->Get(Nan::GetCurrentContext(),0).ToLocalChecked(); + Local y = array->Get(Nan::GetCurrentContext(),1).ToLocalChecked(); if (!x->IsNumber() || !y->IsNumber()) { Nan::ThrowTypeError("'ksize' argument must be a 2 double array"); } @@ -1577,32 +1583,32 @@ NAN_METHOD(Matrix::Moments) { Local res = Nan::New(); - res->Set(Nan::New("m00").ToLocalChecked(), Nan::New(mo.m00)); - res->Set(Nan::New("m10").ToLocalChecked(), Nan::New(mo.m10)); - res->Set(Nan::New("m01").ToLocalChecked(), Nan::New(mo.m01)); - res->Set(Nan::New("m20").ToLocalChecked(), Nan::New(mo.m20)); - res->Set(Nan::New("m11").ToLocalChecked(), Nan::New(mo.m11)); - res->Set(Nan::New("m02").ToLocalChecked(), Nan::New(mo.m02)); - res->Set(Nan::New("m30").ToLocalChecked(), Nan::New(mo.m30)); - res->Set(Nan::New("m21").ToLocalChecked(), Nan::New(mo.m21)); - res->Set(Nan::New("m12").ToLocalChecked(), Nan::New(mo.m12)); - res->Set(Nan::New("m03").ToLocalChecked(), Nan::New(mo.m03)); + res->Set(Nan::GetCurrentContext(),Nan::New("m00").ToLocalChecked(), Nan::New(mo.m00)); + res->Set(Nan::GetCurrentContext(),Nan::New("m10").ToLocalChecked(), Nan::New(mo.m10)); + res->Set(Nan::GetCurrentContext(),Nan::New("m01").ToLocalChecked(), Nan::New(mo.m01)); + res->Set(Nan::GetCurrentContext(),Nan::New("m20").ToLocalChecked(), Nan::New(mo.m20)); + res->Set(Nan::GetCurrentContext(),Nan::New("m11").ToLocalChecked(), Nan::New(mo.m11)); + res->Set(Nan::GetCurrentContext(),Nan::New("m02").ToLocalChecked(), Nan::New(mo.m02)); + res->Set(Nan::GetCurrentContext(),Nan::New("m30").ToLocalChecked(), Nan::New(mo.m30)); + res->Set(Nan::GetCurrentContext(),Nan::New("m21").ToLocalChecked(), Nan::New(mo.m21)); + res->Set(Nan::GetCurrentContext(),Nan::New("m12").ToLocalChecked(), Nan::New(mo.m12)); + res->Set(Nan::GetCurrentContext(),Nan::New("m03").ToLocalChecked(), Nan::New(mo.m03)); - res->Set(Nan::New("mu20").ToLocalChecked(), Nan::New(mo.mu20)); - res->Set(Nan::New("mu11").ToLocalChecked(), Nan::New(mo.mu11)); - res->Set(Nan::New("mu02").ToLocalChecked(), Nan::New(mo.mu02)); - res->Set(Nan::New("mu30").ToLocalChecked(), Nan::New(mo.mu30)); - res->Set(Nan::New("mu21").ToLocalChecked(), Nan::New(mo.mu21)); - res->Set(Nan::New("mu12").ToLocalChecked(), Nan::New(mo.mu12)); - res->Set(Nan::New("mu03").ToLocalChecked(), Nan::New(mo.mu03)); + res->Set(Nan::GetCurrentContext(),Nan::New("mu20").ToLocalChecked(), Nan::New(mo.mu20)); + res->Set(Nan::GetCurrentContext(),Nan::New("mu11").ToLocalChecked(), Nan::New(mo.mu11)); + res->Set(Nan::GetCurrentContext(),Nan::New("mu02").ToLocalChecked(), Nan::New(mo.mu02)); + res->Set(Nan::GetCurrentContext(),Nan::New("mu30").ToLocalChecked(), Nan::New(mo.mu30)); + res->Set(Nan::GetCurrentContext(),Nan::New("mu21").ToLocalChecked(), Nan::New(mo.mu21)); + res->Set(Nan::GetCurrentContext(),Nan::New("mu12").ToLocalChecked(), Nan::New(mo.mu12)); + res->Set(Nan::GetCurrentContext(),Nan::New("mu03").ToLocalChecked(), Nan::New(mo.mu03)); - res->Set(Nan::New("nu20").ToLocalChecked(), Nan::New(mo.nu20)); - res->Set(Nan::New("nu11").ToLocalChecked(), Nan::New(mo.nu11)); - res->Set(Nan::New("nu02").ToLocalChecked(), Nan::New(mo.nu02)); - res->Set(Nan::New("nu30").ToLocalChecked(), Nan::New(mo.nu30)); - res->Set(Nan::New("nu21").ToLocalChecked(), Nan::New(mo.nu21)); - res->Set(Nan::New("nu12").ToLocalChecked(), Nan::New(mo.nu12)); - res->Set(Nan::New("nu03").ToLocalChecked(), Nan::New(mo.nu03)); + res->Set(Nan::GetCurrentContext(),Nan::New("nu20").ToLocalChecked(), Nan::New(mo.nu20)); + res->Set(Nan::GetCurrentContext(),Nan::New("nu11").ToLocalChecked(), Nan::New(mo.nu11)); + res->Set(Nan::GetCurrentContext(),Nan::New("nu02").ToLocalChecked(), Nan::New(mo.nu02)); + res->Set(Nan::GetCurrentContext(),Nan::New("nu30").ToLocalChecked(), Nan::New(mo.nu30)); + res->Set(Nan::GetCurrentContext(),Nan::New("nu21").ToLocalChecked(), Nan::New(mo.nu21)); + res->Set(Nan::GetCurrentContext(),Nan::New("nu12").ToLocalChecked(), Nan::New(mo.nu12)); + res->Set(Nan::GetCurrentContext(),Nan::New("nu03").ToLocalChecked(), Nan::New(mo.nu03)); info.GetReturnValue().Set(res); } @@ -1735,7 +1741,7 @@ NAN_METHOD(Matrix::GoodFeaturesToTrack) { double qualityLevel = info.Length() >= 2 ? (double) info[1].As()->Value() : 0.01; double minDistance = info.Length() >= 3 ? (double) info[2].As()->Value() : 10; int blockSize = info.Length() >= 4 ? info[3]->IntegerValue( Nan::GetCurrentContext() ).ToChecked() : 3; - bool useHarrisDetector = info.Length() >= 5 ? info[4]->BooleanValue( Nan::GetCurrentContext() ).FromJust() : false; + bool useHarrisDetector = info.Length() >= 5 ? info[4]->BooleanValue( v8::Isolate::GetCurrent() ) : false; double k = info.Length() >= 6 ? (double) info[5].As()->Value() : 0.04; std::vector corners; @@ -1753,9 +1759,9 @@ NAN_METHOD(Matrix::GoodFeaturesToTrack) { for (unsigned int i=0; i pt = Nan::New(2); - pt->Set(0, Nan::New((double) corners[i].x)); - pt->Set(1, Nan::New((double) corners[i].y)); - arr->Set(i, pt); + pt->Set(Nan::GetCurrentContext(),0, Nan::New((double) corners[i].x)); + pt->Set(Nan::GetCurrentContext(),1, Nan::New((double) corners[i].y)); + Nan::Set(arr, i, pt); } info.GetReturnValue().Set(arr); @@ -1771,14 +1777,14 @@ NAN_METHOD(Matrix::CalcOpticalFlowPyrLK) { std::vector old_points; for (unsigned int i=0; iLength(); i++) { - Local pt = points->Get(i)->ToObject(Nan::GetCurrentContext()).ToLocalChecked(); - old_points.push_back(cv::Point2f(pt->Get(0).As()->Value(), pt->Get(1).As()->Value())); + Local pt = points->Get(Nan::GetCurrentContext(),i).ToLocalChecked()->ToObject(Nan::GetCurrentContext()).ToLocalChecked(); + old_points.push_back(cv::Point2f(pt->Get(Nan::GetCurrentContext(),0).ToLocalChecked().As()->Value(), pt->Get(Nan::GetCurrentContext(),1).ToLocalChecked().As()->Value())); } cv::Size winSize; if (info.Length() >= 3 && info[2]->IsArray()) { Local winSizeObj = info[2]->ToObject(Nan::GetCurrentContext()).ToLocalChecked(); - winSize = cv::Size(winSizeObj->Get(0)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(), winSizeObj->Get(1)->IntegerValue( Nan::GetCurrentContext() ).ToChecked()); + winSize = cv::Size(winSizeObj->Get(Nan::GetCurrentContext(),0).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked(), winSizeObj->Get(Nan::GetCurrentContext(),1).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked()); } else { winSize = cv::Size(21, 21); } @@ -1788,7 +1794,7 @@ NAN_METHOD(Matrix::CalcOpticalFlowPyrLK) { cv::TermCriteria criteria; if (info.Length() >= 5 && info[4]->IsArray()) { Local criteriaObj = info[4]->ToObject(Nan::GetCurrentContext()).ToLocalChecked(); - criteria = cv::TermCriteria(criteriaObj->Get(0)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(), criteriaObj->Get(1)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(), (double) criteriaObj->Get(2).As()->Value()); + criteria = cv::TermCriteria(criteriaObj->Get(Nan::GetCurrentContext(),0).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked(), criteriaObj->Get(Nan::GetCurrentContext(),1).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked(), (double) criteriaObj->Get(Nan::GetCurrentContext(),2).ToLocalChecked().As()->Value()); } else { criteria = cv::TermCriteria(cv::TermCriteria::COUNT + cv::TermCriteria::EPS, 30, 0.01); } @@ -1814,27 +1820,27 @@ NAN_METHOD(Matrix::CalcOpticalFlowPyrLK) { for (unsigned int i=0; i pt = Nan::New(2); - pt->Set(0, Nan::New((double) old_points[i].x)); - pt->Set(1, Nan::New((double) old_points[i].y)); - old_arr->Set(i, pt); + pt->Set(Nan::GetCurrentContext(),0, Nan::New((double) old_points[i].x)); + pt->Set(Nan::GetCurrentContext(),1, Nan::New((double) old_points[i].y)); + new_arr->Set(Nan::GetCurrentContext(), i, pt); } for (unsigned int i=0; i pt = Nan::New(2); - pt->Set(0, Nan::New((double) new_points[i].x)); - pt->Set(1, Nan::New((double) new_points[i].y)); - new_arr->Set(i, pt); + pt->Set(Nan::GetCurrentContext(),0, Nan::New((double) new_points[i].x)); + pt->Set(Nan::GetCurrentContext(),1, Nan::New((double) new_points[i].y)); + new_arr->Set(Nan::GetCurrentContext(), i, pt); } for (unsigned int i=0; i pt = Nan::New((int)status[i]); - found->Set(i, pt); + found->Set(Nan::GetCurrentContext(),i, pt); } Local data = Nan::New(); - data->Set(Nan::New("old_points").ToLocalChecked(), old_arr); - data->Set(Nan::New("new_points").ToLocalChecked(), new_arr); - data->Set(Nan::New("found").ToLocalChecked(), found); + data->Set(Nan::GetCurrentContext(),Nan::New("old_points").ToLocalChecked(), old_arr); + data->Set(Nan::GetCurrentContext(),Nan::New("new_points").ToLocalChecked(), new_arr); + data->Set(Nan::GetCurrentContext(),Nan::New("found").ToLocalChecked(), found); info.GetReturnValue().Set(data); } @@ -1861,11 +1867,11 @@ NAN_METHOD(Matrix::HoughLinesP) { for (unsigned int i=0; i pt = Nan::New(4); - pt->Set(0, Nan::New((double) lines[i][0])); - pt->Set(1, Nan::New((double) lines[i][1])); - pt->Set(2, Nan::New((double) lines[i][2])); - pt->Set(3, Nan::New((double) lines[i][3])); - arr->Set(i, pt); + pt->Set(Nan::GetCurrentContext(),0, Nan::New((double) lines[i][0])); + pt->Set(Nan::GetCurrentContext(),1, Nan::New((double) lines[i][1])); + pt->Set(Nan::GetCurrentContext(),2, Nan::New((double) lines[i][2])); + pt->Set(Nan::GetCurrentContext(),3, Nan::New((double) lines[i][3])); + Nan::Set(arr, i, pt); } info.GetReturnValue().Set(arr); @@ -1895,10 +1901,10 @@ NAN_METHOD(Matrix::HoughCircles) { for (unsigned int i=0; i < circles.size(); i++) { v8::Local pt = Nan::New(3); - pt->Set(0, Nan::New((double) circles[i][0])); // center x - pt->Set(1, Nan::New((double) circles[i][1]));// center y - pt->Set(2, Nan::New((double) circles[i][2]));// radius - arr->Set(i, pt); + pt->Set(Nan::GetCurrentContext(),0, Nan::New((double) circles[i][0])); // center x + pt->Set(Nan::GetCurrentContext(),1, Nan::New((double) circles[i][1]));// center y + pt->Set(Nan::GetCurrentContext(),2, Nan::New((double) circles[i][2]));// radius + Nan::Set(arr, i, pt); } info.GetReturnValue().Set(arr); @@ -1910,43 +1916,43 @@ cv::Scalar setColor(Local objColor) { // We'll accomodate a channel count up to 4 and fall back to the old // "assume it's always 3" in the default case if (!objColor->HasRealIndexedProperty( Nan::GetCurrentContext() , 1).ToChecked()) { - channels[0] = objColor->Get(0)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); + channels[0] = objColor->Get(Nan::GetCurrentContext(), 0).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); } else if (!objColor->HasRealIndexedProperty( Nan::GetCurrentContext() , 2).ToChecked()) { - channels[0] = objColor->Get(0)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); - channels[1] = objColor->Get(1)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); + channels[0] = objColor->Get(Nan::GetCurrentContext(),0).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); + channels[1] = objColor->Get(Nan::GetCurrentContext(),1).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); } else if (!objColor->HasRealIndexedProperty( Nan::GetCurrentContext() , 4).ToChecked()) { - channels[0] = objColor->Get(0)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); - channels[1] = objColor->Get(1)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); - channels[2] = objColor->Get(2)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); - channels[3] = objColor->Get(3)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); + channels[0] = objColor->Get(Nan::GetCurrentContext(),0).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); + channels[1] = objColor->Get(Nan::GetCurrentContext(),1).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); + channels[2] = objColor->Get(Nan::GetCurrentContext(),2).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); + channels[3] = objColor->Get(Nan::GetCurrentContext(),3).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); } else { - channels[0] = objColor->Get(0)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); - channels[1] = objColor->Get(1)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); - channels[2] = objColor->Get(2)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); + channels[0] = objColor->Get(Nan::GetCurrentContext(),0).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); + channels[1] = objColor->Get(Nan::GetCurrentContext(),1).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); + channels[2] = objColor->Get(Nan::GetCurrentContext(),2).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); } return cv::Scalar(channels[0], channels[1], channels[2], channels[3]); } cv::Point setPoint(Local objPoint) { - return cv::Point(objPoint->Get(0)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(), - objPoint->Get(1)->IntegerValue( Nan::GetCurrentContext() ).ToChecked()); + return cv::Point(objPoint->Get(Nan::GetCurrentContext(),0).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked(), + objPoint->Get(Nan::GetCurrentContext(),1).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked()); } cv::Rect* setRect(Local objRect, cv::Rect &result) { - if (!objRect->IsArray() || !objRect->Get(0)->IsArray() - || !objRect->Get(0)->IsArray()) { + if (!objRect->IsArray() || !objRect->Get(Nan::GetCurrentContext(),0).ToLocalChecked()->IsArray() + || !objRect->Get(Nan::GetCurrentContext(),0).ToLocalChecked()->IsArray()) { printf("error"); return 0; }; - Local < Object > point = objRect->Get(0)->ToObject(Nan::GetCurrentContext()).ToLocalChecked(); - Local < Object > size = objRect->Get(1)->ToObject(Nan::GetCurrentContext()).ToLocalChecked(); + Local < Object > point = Nan::To( Nan::Get(objRect,0).ToLocalChecked() ).ToLocalChecked();; + Local < Object > size = Nan::To( Nan::Get(objRect,1).ToLocalChecked() ).ToLocalChecked(); - result.x = point->Get(0)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); - result.y = point->Get(1)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); - result.width = size->Get(0)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); - result.height = size->Get(1)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(); + result.x = Nan::To( Nan::Get(point,0).ToLocalChecked() ).FromJust(); + result.y = Nan::To( Nan::Get(point,1).ToLocalChecked() ).FromJust(); + result.width = Nan::To( Nan::Get(size,0).ToLocalChecked() ).FromJust(); + result.height = Nan::To( Nan::Get(size,1).ToLocalChecked() ).FromJust(); return &result; } @@ -2259,10 +2265,10 @@ NAN_METHOD(Matrix::LocateROI) { self->mat.locateROI(wholeSize, ofs); v8::Local < v8::Array > arr = Nan::New(4); - arr->Set(0, Nan::New(wholeSize.width)); - arr->Set(1, Nan::New(wholeSize.height)); - arr->Set(2, Nan::New(ofs.x)); - arr->Set(3, Nan::New(ofs.y)); + Nan::Set(arr, 0, Nan::New(wholeSize.width)); + Nan::Set(arr, 1, Nan::New(wholeSize.height)); + Nan::Set(arr, 2, Nan::New(ofs.x)); + Nan::Set(arr, 3, Nan::New(ofs.y)); info.GetReturnValue().Set(arr); } @@ -2374,8 +2380,8 @@ NAN_METHOD(Matrix::MeanStdDev) { cv::meanStdDev(self->mat, meanMat, stddevMat); Local data = Nan::New(); - data->Set(Nan::New("mean").ToLocalChecked(), CreateWrappedFromMat(meanMat)); - data->Set(Nan::New("stddev").ToLocalChecked(), CreateWrappedFromMat(stddevMat)); + Nan::Set(data,Nan::New("mean").ToLocalChecked(), CreateWrappedFromMat(meanMat)); + Nan::Set(data,Nan::New("stddev").ToLocalChecked(), CreateWrappedFromMat(stddevMat)); info.GetReturnValue().Set(data); } @@ -2536,7 +2542,7 @@ NAN_METHOD(Matrix::Split) { v8::Local arrChannels = Nan::New(size); for (unsigned int i = 0; i < size; i++) { Local matObject = Matrix::CreateWrappedFromMatIfNotReferenced(channels[i], 1); - arrChannels->Set(i, matObject); + Nan::Set(arrChannels, i, matObject); } info.GetReturnValue().Set(arrChannels); @@ -2557,7 +2563,7 @@ NAN_METHOD(Matrix::Merge) { unsigned int L = jsChannels->Length(); std::vector vChannels(L); for (unsigned int i = 0; i < L; i++) { - Matrix * matObject = Nan::ObjectWrap::Unwrap(jsChannels->Get(i)->ToObject(Nan::GetCurrentContext()).ToLocalChecked()); + Matrix * matObject = Nan::ObjectWrap::Unwrap( Nan::To( Nan::Get(jsChannels,i).ToLocalChecked() ).ToLocalChecked() ); vChannels[i] = matObject->mat; } cv::merge(vChannels, self->mat); @@ -2581,7 +2587,7 @@ NAN_METHOD(Matrix::EqualizeHist) { NAN_METHOD(Matrix::FloodFill) { SETUP_FUNCTION(Matrix) - // obj->Get(Nan::New("x").ToLocalChecked()) + // obj->Get(Nan::GetCurrentContext(), Nan::New("x").ToLocalChecked()) // int cv::floodFill(cv::InputOutputArray, cv::Point, cv::Scalar, cv::Rect*, cv::Scalar, cv::Scalar, int) /* mat.floodFill( {seedPoint: [1,1] , @@ -2599,24 +2605,32 @@ NAN_METHOD(Matrix::FloodFill) { cv::Rect rect; int ret = cv::floodFill(self->mat, - setPoint(obj->Get(Nan::New("seedPoint").ToLocalChecked())->ToObject(Nan::GetCurrentContext()).ToLocalChecked()), - setColor(obj->Get(Nan::New("newColor").ToLocalChecked())->ToObject(Nan::GetCurrentContext()).ToLocalChecked()), - obj->Get(Nan::New("rect").ToLocalChecked())->IsUndefined() ? - 0 : setRect(obj->Get(Nan::New("rect").ToLocalChecked())->ToObject(Nan::GetCurrentContext()).ToLocalChecked(), rect), - setColor(obj->Get(Nan::New("loDiff").ToLocalChecked())->ToObject(Nan::GetCurrentContext()).ToLocalChecked()), - setColor(obj->Get(Nan::New("upDiff").ToLocalChecked())->ToObject(Nan::GetCurrentContext()).ToLocalChecked()), 4); + setPoint( Nan::To( Nan::Get(obj,Nan::New("seedPoint").ToLocalChecked()).ToLocalChecked() ).ToLocalChecked()), + setColor( Nan::To( Nan::Get(obj,Nan::New("newColor").ToLocalChecked()).ToLocalChecked() ).ToLocalChecked()), + Nan::Get(obj,Nan::New("rect").ToLocalChecked()).IsEmpty() ? + 0 : setRect( Nan::To( Nan::Get(obj,Nan::New("rect").ToLocalChecked()).ToLocalChecked() ).ToLocalChecked(), rect), + setColor( Nan::To( Nan::Get(obj,Nan::New("loDiff").ToLocalChecked()).ToLocalChecked() ).ToLocalChecked()), + setColor( Nan::To( Nan::Get(obj,Nan::New("upDiff").ToLocalChecked()).ToLocalChecked() ).ToLocalChecked()), + + 4); // Documentation notes that parameter "rect" is an optional output // parameter which will hold the smallest possible bounding box of // affected pixels. If "rect" was provided, let's update the values. // (https://docs.opencv.org/2.4/modules/imgproc/doc/miscellaneous_transformations.html#floodfill) - if (!obj->Get(Nan::New("rect").ToLocalChecked())->IsUndefined()) { - Local< Object > rectArgument = - obj->Get(Nan::New("rect").ToLocalChecked())->ToObject(Nan::GetCurrentContext()).ToLocalChecked(); - rectArgument->Get(0)->ToObject(Nan::GetCurrentContext()).ToLocalChecked()->Set(0, Nan::New(rect.x)); - rectArgument->Get(0)->ToObject(Nan::GetCurrentContext()).ToLocalChecked()->Set(1, Nan::New(rect.y)); - rectArgument->Get(1)->ToObject(Nan::GetCurrentContext()).ToLocalChecked()->Set(0, Nan::New(rect.width)); - rectArgument->Get(1)->ToObject(Nan::GetCurrentContext()).ToLocalChecked()->Set(1, Nan::New(rect.height)); + if (! Nan::Get(obj,Nan::New("rect").ToLocalChecked()).IsEmpty()) { + Local< Object > rectArgument = Nan::To( Nan::Get(obj,Nan::New("rect").ToLocalChecked()).ToLocalChecked() ).ToLocalChecked(); + //obj->Get(Nan::GetCurrentContext(), Nan::New("rect").ToLocalChecked())->ToObject(Nan::GetCurrentContext()).ToLocalChecked(); + + + //Nan::Get(rectArgument,0)->ToObject(Nan::GetCurrentContext()).ToLocalChecked()->Set(Nan::GetCurrentContext(),0, Nan::New(rect.x)); + Nan::Set( Nan::To( Nan::Get(rectArgument,0).ToLocalChecked() ).ToLocalChecked(), 0, Nan::New(rect.x) ); + //Nan::Get(rectArgument,0)->ToObject(Nan::GetCurrentContext()).ToLocalChecked()->Set(Nan::GetCurrentContext(),1, Nan::New(rect.y)); + Nan::Set( Nan::To( Nan::Get(rectArgument,0).ToLocalChecked() ).ToLocalChecked(), 1, Nan::New(rect.y) ); + //Nan::Get(rectArgument,1)->ToObject(Nan::GetCurrentContext()).ToLocalChecked()->Set(Nan::GetCurrentContext(),0, Nan::New(rect.width)); + Nan::Set( Nan::To( Nan::Get(rectArgument,1).ToLocalChecked() ).ToLocalChecked(), 0, Nan::New(rect.width) ); + //Nan::Get(rectArgument,1)->ToObject(Nan::GetCurrentContext()).ToLocalChecked()->Set(Nan::GetCurrentContext(),1, Nan::New(rect.height)); + Nan::Set( Nan::To( Nan::Get(rectArgument,1).ToLocalChecked() ).ToLocalChecked(), 1, Nan::New(rect.height) ); } info.GetReturnValue().Set(Nan::New(ret)); @@ -2635,7 +2649,7 @@ NAN_METHOD(Matrix::TemplateMatches) { double min_probability = filter_min_probability ? info[0].As()->Value() : 0; double max_probability = filter_max_probability ? info[1].As()->Value() : 0; int limit = (info.Length() >= 3) ? info[2]->IntegerValue( Nan::GetCurrentContext() ).ToChecked() : 0; - bool ascending = (info.Length() >= 4) ? info[3]->BooleanValue( Nan::GetCurrentContext() ).FromJust() : false; + bool ascending = (info.Length() >= 4) ? Nan::To(info[3] ).FromJust() : false; int min_x_distance = (info.Length() >= 5) ? info[4]->IntegerValue( Nan::GetCurrentContext() ).ToChecked() : 0; int min_y_distance = (info.Length() >= 6) ? info[5]->IntegerValue( Nan::GetCurrentContext() ).ToChecked() : 0; @@ -2709,11 +2723,11 @@ NAN_METHOD(Matrix::TemplateMatches) { Local probability_value = Nan::New(probability); Local < Object > probability_object = Nan::New(); - probability_object->Set(Nan::New("x").ToLocalChecked(), x_value); - probability_object->Set(Nan::New("y").ToLocalChecked(), y_value); - probability_object->Set(Nan::New("probability").ToLocalChecked(), probability_value); + Nan::Set(probability_object,Nan::New("x").ToLocalChecked(), x_value); + Nan::Set(probability_object,Nan::New("y").ToLocalChecked(), y_value); + Nan::Set(probability_object,Nan::New("probability").ToLocalChecked(), probability_value); - probabilites_array->Set(index, probability_object); + Nan::Set(probabilites_array,index, probability_object); index++; } @@ -2807,11 +2821,11 @@ NAN_METHOD(Matrix::MatchTemplate) { result.convertTo(result, CV_8UC1, 255, 0); v8::Local arr = Nan::New(5); - arr->Set(0, CreateWrappedFromMat(result)); - arr->Set(1, Nan::New(roi_x)); - arr->Set(2, Nan::New(roi_y)); - arr->Set(3, Nan::New(roi_width)); - arr->Set(4, Nan::New(roi_height)); + Nan::Set(arr, 0, CreateWrappedFromMat(result)); + Nan::Set(arr, 1, Nan::New(roi_x)); + Nan::Set(arr, 2, Nan::New(roi_y)); + Nan::Set(arr, 3, Nan::New(roi_width)); + Nan::Set(arr, 4, Nan::New(roi_height)); info.GetReturnValue().Set(arr); } @@ -2833,19 +2847,19 @@ NAN_METHOD(Matrix::MinMaxLoc) { Local v_maxLoc_y = Nan::New(maxLoc.y); Local o_minLoc = Nan::New(); - o_minLoc->Set(Nan::New("x").ToLocalChecked(), v_minLoc_x); - o_minLoc->Set(Nan::New("y").ToLocalChecked(), v_minLoc_y); + Nan::Set(o_minLoc,Nan::New("x").ToLocalChecked(), v_minLoc_x); + Nan::Set(o_minLoc,Nan::New("y").ToLocalChecked(), v_minLoc_y); Local o_maxLoc = Nan::New(); - o_maxLoc->Set(Nan::New("x").ToLocalChecked(), v_maxLoc_x); - o_maxLoc->Set(Nan::New("y").ToLocalChecked(), v_maxLoc_y); + Nan::Set(o_maxLoc,Nan::New("x").ToLocalChecked(), v_maxLoc_x); + Nan::Set(o_maxLoc,Nan::New("y").ToLocalChecked(), v_maxLoc_y); // Output result object Local result = Nan::New(); - result->Set(Nan::New("minVal").ToLocalChecked(), v_minVal); - result->Set(Nan::New("maxVal").ToLocalChecked(), v_maxVal); - result->Set(Nan::New("minLoc").ToLocalChecked(), o_minLoc); - result->Set(Nan::New("maxLoc").ToLocalChecked(), o_maxLoc); + Nan::Set(result,Nan::New("minVal").ToLocalChecked(), v_minVal); + Nan::Set(result,Nan::New("maxVal").ToLocalChecked(), v_maxVal); + Nan::Set(result,Nan::New("minLoc").ToLocalChecked(), o_minLoc); + Nan::Set(result, Nan::New("maxLoc").ToLocalChecked(), o_maxLoc); info.GetReturnValue().Set(result); } @@ -2913,10 +2927,10 @@ NAN_METHOD(Matrix::GetPerspectiveTransform) { std::vector src_corners(4); std::vector tgt_corners(4); for (unsigned int i = 0; i < 4; i++) { - src_corners[i] = cvPoint(srcArray->Get(i*2)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(),srcArray->Get(i*2+1)->IntegerValue( Nan::GetCurrentContext() ).ToChecked()); - tgt_corners[i] = cvPoint(tgtArray->Get(i*2)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(),tgtArray->Get(i*2+1)->IntegerValue( Nan::GetCurrentContext() ).ToChecked()); + src_corners[i] = cvPoint(Nan::To( Nan::Get(srcArray,i*2).ToLocalChecked()).FromJust(), Nan::To( Nan::Get(srcArray,i*2+1).ToLocalChecked()).FromJust()); + tgt_corners[i] = cvPoint(Nan::To( Nan::Get(tgtArray,i*2).ToLocalChecked()).FromJust(), Nan::To( Nan::Get(tgtArray,i*2+1).ToLocalChecked()).FromJust()); } - + Local xfrm = Matrix::CreateWrappedFromMat(cv::getPerspectiveTransform(src_corners, tgt_corners)); info.GetReturnValue().Set(xfrm); @@ -2969,10 +2983,9 @@ NAN_METHOD(Matrix::SetWithMask) { // param 0 - target value: Local < Object > valArray = Nan::To(info[0]).ToLocalChecked(); cv::Scalar newvals; - newvals.val[0] = valArray->Get(0).As()->Value(); - newvals.val[1] = valArray->Get(1).As()->Value(); - newvals.val[2] = valArray->Get(2).As()->Value(); - + newvals.val[0] = Nan::To( Nan::Get(valArray,0).ToLocalChecked()).FromJust() ; + newvals.val[1] = Nan::To( Nan::Get(valArray,1).ToLocalChecked()).FromJust() ; + newvals.val[2] = Nan::To( Nan::Get(valArray,2).ToLocalChecked()).FromJust() ; // param 1 - mask. same size as src and dest Matrix *mask = Nan::ObjectWrap::Unwrap(info[1]->ToObject(Nan::GetCurrentContext()).ToLocalChecked()); @@ -2989,10 +3002,10 @@ NAN_METHOD(Matrix::MeanWithMask) { cv::Scalar means = cv::mean(self->mat, mask->mat); v8::Local < v8::Array > arr = Nan::New(4); - arr->Set(0, Nan::New(means[0])); - arr->Set(1, Nan::New(means[1])); - arr->Set(2, Nan::New(means[2])); - arr->Set(3, Nan::New(means[3])); + Nan::Set(arr, 0, Nan::New(means[0])); + Nan::Set(arr, 1, Nan::New(means[1])); + Nan::Set(arr, 2, Nan::New(means[2])); + Nan::Set(arr, 3, Nan::New(means[3])); info.GetReturnValue().Set(arr); } @@ -3002,10 +3015,10 @@ NAN_METHOD(Matrix::Mean) { cv::Scalar means = cv::mean(self->mat); v8::Local arr = Nan::New(4); - arr->Set(0, Nan::New(means[0])); - arr->Set(1, Nan::New(means[1])); - arr->Set(2, Nan::New(means[2])); - arr->Set(3, Nan::New(means[3])); + Nan::Set(arr, 0, Nan::New(means[0])); + Nan::Set(arr, 1, Nan::New(means[1])); + Nan::Set(arr, 2, Nan::New(means[2])); + Nan::Set(arr, 3, Nan::New(means[3])); info.GetReturnValue().Set(arr); } @@ -3031,9 +3044,9 @@ NAN_METHOD(Matrix::CopyMakeBorder) { v8::Local objColor = v8::Local::Cast(info[5]); unsigned int length = objColor->Length(); - Local valB = objColor->Get(0); - Local valG = objColor->Get(1); - Local valR = objColor->Get(2); + Local valB = Nan::Get(objColor,0).ToLocalChecked(); + Local valG = Nan::Get(objColor,1).ToLocalChecked(); + Local valR = Nan::Get(objColor,2).ToLocalChecked(); if (length == 3) { value = cv::Scalar( @@ -3042,7 +3055,7 @@ NAN_METHOD(Matrix::CopyMakeBorder) { valR->IntegerValue( Nan::GetCurrentContext() ).ToChecked() ); } else if (length == 4) { - Local valA = objColor->Get(3); + Local valA = Nan::Get(objColor,3).ToLocalChecked(); value = cv::Scalar( Nan::To(valB).FromJust(), diff --git a/src/OpenCV.cc b/src/OpenCV.cc index b9f779c..28c575e 100755 --- a/src/OpenCV.cc +++ b/src/OpenCV.cc @@ -8,7 +8,7 @@ void OpenCV::Init(Local target) { // Version string. char out [21]; int n = sprintf(out, "%i.%i", CV_MAJOR_VERSION, CV_MINOR_VERSION); - target->Set(Nan::New("version").ToLocalChecked(), Nan::New(out, n).ToLocalChecked()); + target->Set(Nan::GetCurrentContext(), Nan::New("version").ToLocalChecked(), Nan::New(out, n).ToLocalChecked()); Nan::SetMethod(target, "readImage", ReadImage); Nan::SetMethod(target, "readImageAsync", ReadImageAsync); @@ -369,7 +369,7 @@ NAN_METHOD(OpenCV::ReadImageMulti) { for (std::vector::size_type i = 0; i < mats.size(); i ++) { Local im_h = Matrix::CreateWrappedFromMat(mats[i]); - output->Set(i, im_h); + output->Set(Nan::GetCurrentContext(), i, im_h); } Nan::TryCatch try_catch; diff --git a/src/Point.cc b/src/Point.cc index 4ef8a1a..7cdc034 100755 --- a/src/Point.cc +++ b/src/Point.cc @@ -19,7 +19,7 @@ void Point::Init(Local target) { Nan::SetPrototypeMethod(ctor, "dot", Dot); - target->Set(Nan::New("Point").ToLocalChecked(), ctor->GetFunction( Nan::GetCurrentContext() ).ToLocalChecked()); + target->Set(Nan::GetCurrentContext(), Nan::New("Point").ToLocalChecked(), ctor->GetFunction( Nan::GetCurrentContext() ).ToLocalChecked()); }; NAN_METHOD(Point::New) { diff --git a/src/Stereo.cc b/src/Stereo.cc index 567d91f..495c326 100644 --- a/src/Stereo.cc +++ b/src/Stereo.cc @@ -32,7 +32,7 @@ void StereoBM::Init(Local target) { ctor->Set(Nan::New("FISH_EYE_PRESET").ToLocalChecked(), Nan::New((int)cv::StereoBM::FISH_EYE_PRESET)); ctor->Set(Nan::New("NARROW_PRESET").ToLocalChecked(), Nan::New((int)cv::StereoBM::NARROW_PRESET)); - target->Set(Nan::New("StereoBM").ToLocalChecked(), ctor->GetFunction( Nan::GetCurrentContext() ).ToLocalChecked()); + target->Set(Nan::GetCurrentContext(),Nan::New("StereoBM").ToLocalChecked(), ctor->GetFunction( Nan::GetCurrentContext() ).ToLocalChecked()); } NAN_METHOD(StereoBM::New) { @@ -117,7 +117,7 @@ void StereoSGBM::Init(Local target) { Nan::SetPrototypeMethod(ctor, "compute", Compute); - target->Set(Nan::New("StereoSGBM").ToLocalChecked(), ctor->GetFunction( Nan::GetCurrentContext() ).ToLocalChecked()); + target->Set(Nan::GetCurrentContext(), Nan::New("StereoSGBM").ToLocalChecked(), ctor->GetFunction( Nan::GetCurrentContext() ).ToLocalChecked()); } NAN_METHOD(StereoSGBM::New) { @@ -249,7 +249,7 @@ void StereoGC::Init(Local target) { Nan::SetPrototypeMethod(ctor, "compute", Compute); - target->Set(Nan::New("StereoGC").ToLocalChecked(), ctor->GetFunction( Nan::GetCurrentContext() ).ToLocalChecked()); + target->Set(Nan::GetCurrentContext(),Nan::New("StereoGC").ToLocalChecked(), ctor->GetFunction( Nan::GetCurrentContext() ).ToLocalChecked()); } NAN_METHOD(StereoGC::New) { diff --git a/src/VideoCaptureWrap.cc b/src/VideoCaptureWrap.cc index c91391b..1f2482e 100755 --- a/src/VideoCaptureWrap.cc +++ b/src/VideoCaptureWrap.cc @@ -48,7 +48,7 @@ void VideoCaptureWrap::Init(Local target) { Nan::SetPrototypeMethod(ctor, "grab", Grab); Nan::SetPrototypeMethod(ctor, "retrieve", Retrieve); - target->Set(Nan::New("VideoCapture").ToLocalChecked(), ctor->GetFunction( Nan::GetCurrentContext() ).ToLocalChecked()); + target->Set(Nan::GetCurrentContext(), Nan::New("VideoCapture").ToLocalChecked(), ctor->GetFunction( Nan::GetCurrentContext() ).ToLocalChecked()); } NAN_METHOD(VideoCaptureWrap::New) { diff --git a/src/VideoWriterWrap.cc b/src/VideoWriterWrap.cc index c2125df..60e847a 100755 --- a/src/VideoWriterWrap.cc +++ b/src/VideoWriterWrap.cc @@ -34,7 +34,7 @@ void VideoWriterWrap::Init(Local target) { Nan::SetPrototypeMethod(ctor, "writeSync", WriteSync); Nan::SetPrototypeMethod(ctor, "release", Release); - target->Set(Nan::New("VideoWriter").ToLocalChecked(), ctor->GetFunction( Nan::GetCurrentContext() ).ToLocalChecked()); + target->Set(Nan::GetCurrentContext(), Nan::New("VideoWriter").ToLocalChecked(), ctor->GetFunction( Nan::GetCurrentContext() ).ToLocalChecked()); } NAN_METHOD(VideoWriterWrap::New) { @@ -60,13 +60,13 @@ NAN_METHOD(VideoWriterWrap::New) { cv::Size imageSize; if (info[3]->IsArray()) { Local v8sz = info[3]->ToObject(Nan::GetCurrentContext()).ToLocalChecked(); - imageSize = cv::Size(v8sz->Get(1)->IntegerValue( Nan::GetCurrentContext() ).ToChecked(), v8sz->Get(0)->IntegerValue( Nan::GetCurrentContext() ).ToChecked()); + imageSize = cv::Size(v8sz->Get(Nan::GetCurrentContext(),1).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked(), v8sz->Get(Nan::GetCurrentContext(),0).ToLocalChecked()->IntegerValue( Nan::GetCurrentContext() ).ToChecked()); } else { JSTHROW_TYPE("Must pass image size"); } // Arg 4 is the color flag - bool isColor = info[4]->BooleanValue( Nan::GetCurrentContext() ).FromJust(); + bool isColor = info[4]->BooleanValue( v8::Isolate::GetCurrent() ); v = new VideoWriterWrap(filename, fourcc, fps, imageSize, isColor); v->Wrap(info.This()); diff --git a/test/nativemat.cc b/test/nativemat.cc index bb6351e..6166691 100644 --- a/test/nativemat.cc +++ b/test/nativemat.cc @@ -6,14 +6,14 @@ void Size(const Nan::FunctionCallbackInfo& info) { cv::Mat mat = Nan::ObjectWrap::Unwrap(Nan::To(info[0]).ToLocalChecked())->mat; v8::Local < v8::Array > arr = Nan::New(2); - arr->Set(0, Nan::New(mat.size().height)); - arr->Set(1, Nan::New(mat.size().width)); + arr->Set(Nan::GetCurrentContext(),0, Nan::New(mat.size().height)); + arr->Set(Nan::GetCurrentContext(),1, Nan::New(mat.size().width)); info.GetReturnValue().Set(arr); } void Init(v8::Local exports) { - exports->Set(Nan::New("size").ToLocalChecked(), + exports->Set(Nan::GetCurrentContext(), Nan::New("size").ToLocalChecked(), Nan::New(Size)->GetFunction( Nan::GetCurrentContext() ).ToLocalChecked()); }