RGB2HSV HSV2RGB
struct RGB2HSV : INode {
virtual void apply() override {
auto image = get_input<PrimitiveObject>("image");
float H = 0, S = 0, V = 0;
for (auto i = 0; i < image->verts.size(); i++){
float R = image->verts[i][0];
float G = image->verts[i][1];
float B = image->verts[i][2];
zeno::RGBtoHSV(R, G, B, H, S, V);
image->verts[i][0]= H;
image->verts[i][1]= S;
image->verts[i][2]= V;
}
set_output("image", image);
}
};
ZENDEFNODE(RGB2HSV, {
{
{"image"},
},
{
{"image"},
},
{},
{ "comp" },
});
struct HSV2RGB : INode {
virtual void apply() override {
auto image = get_input<PrimitiveObject>("image");
float R = 0, G = 0, B = 0;
for (auto i = 0; i < image->verts.size(); i++){
float H = image->verts[i][0];
float S = image->verts[i][1];
float V = image->verts[i][2];
zeno::HSVtoRGB(H, S, V, R, G, B);
image->verts[i][0]= R ;
image->verts[i][1]= G ;
image->verts[i][2]= B ;
}
set_output("image", image);
}
};
ZENDEFNODE(HSV2RGB, {
{
{"image"},
},
{
{"image"},
},
{},
{ "comp" },
});