On 21/06/2015 at 22:04, xxxxxxxx wrote:
User Information:
Cinema 4D Version: 15+
Platform: Windows ;
Language(s) : C++ ;
---------
I'm creating a greadient inside GetDDescription()
cid = DescLevel(ids, CUSTOMDATATYPE_GRADIENT, 0);
if (!singleid || cid.IsPartOf(*singleid, nullptr))// important to check for speedup c4d!
{
BaseContainer dt = GetCustomDataTypeDefault(CUSTOMDATATYPE_GRADIENT);
std::string dName = kndData->nodes[kndData->selectedNode].getInternalDataName(i);
String dtName(dName.c_str());
dt.SetString(DESC_SHORT_NAME, dtName);
dt.SetString(DESC_NAME, dtName);
dt.SetBool(DESC_ANIMATE, DESC_ANIMATE_ON);
dt.SetInt32(DESC_CUSTOMGUI, CUSTOMGUI_GRADIENT);
if (!description->SetParameter(cid, dt, DescLevel(Tbaselist2d)))
return true;
}
I know that I can set GRADIENT_MODE to GRADIENTMODE_COLORALPHA, my questions are:
1- when I create the gradient, it doesn't show the "arrow" on the left, which expands gradient data when user selects knots.
I create gradient like this:
GeData rampData(CUSTOMDATATYPE_GRADIENT, DEFAULTVALUE);
Gradient *ramp = (Gradient* )rampData.GetCustomDataType(CUSTOMDATATYPE_GRADIENT);
and I can access RGB at any pos on the gradient using ::CalcGradientPixel(pos)
so second question is:
2- how to let user specify alpha for knots?, and how to create/retrieve this alpha data?