#ifndef GRADIENT_H #define GRADIENT_H #include #include namespace NodeBinding { struct LinearGradientInfo { float startX; float startY; float endX; float endY; }; struct RadialGradientInfo { float startX; float startY; float startR; float endX; float endY; float endR; }; class Gradient : public Napi::ObjectWrap { public: Gradient(const Napi::CallbackInfo &info); static void Init(Napi::Env env); static Napi::Object NewInstance(Napi::Env env, const Napi::CallbackInfo &info); std::vector &getOffsets() { return this->offsets; } std::vector &getColors() { return this->colors; } std::shared_ptr mLinearGradientInfo = nullptr; std::shared_ptr mRadialGradientInfo = nullptr; int getCount() { return this->offsets.size(); } private: static Napi::FunctionReference constructor; void addColorStop(const Napi::CallbackInfo &info); std::vector offsets; std::vector colors; }; } // namespace NodeBinding #endif