Changeset View
Changeset View
Standalone View
Standalone View
source/blender/nodes/shader/nodes/node_shader_valToRgb.cc
| Show First 20 Lines • Show All 134 Lines • ▼ Show 20 Lines | ColorBandFunction(const ColorBand &color_band) : color_band_(color_band) | ||||
| static blender::fn::MFSignature signature = create_signature(); | static blender::fn::MFSignature signature = create_signature(); | ||||
| this->set_signature(&signature); | this->set_signature(&signature); | ||||
| } | } | ||||
| static blender::fn::MFSignature create_signature() | static blender::fn::MFSignature create_signature() | ||||
| { | { | ||||
| blender::fn::MFSignatureBuilder signature{"Color Band"}; | blender::fn::MFSignatureBuilder signature{"Color Band"}; | ||||
| signature.single_input<float>("Value"); | signature.single_input<float>("Value"); | ||||
| signature.single_output<blender::Color4f>("Color"); | signature.single_output<blender::ColorGeometry4f>("Color"); | ||||
| signature.single_output<float>("Alpha"); | signature.single_output<float>("Alpha"); | ||||
| return signature.build(); | return signature.build(); | ||||
| } | } | ||||
| void call(blender::IndexMask mask, | void call(blender::IndexMask mask, | ||||
| blender::fn::MFParams params, | blender::fn::MFParams params, | ||||
| blender::fn::MFContext UNUSED(context)) const override | blender::fn::MFContext UNUSED(context)) const override | ||||
| { | { | ||||
| const blender::VArray<float> &values = params.readonly_single_input<float>(0, "Value"); | const blender::VArray<float> &values = params.readonly_single_input<float>(0, "Value"); | ||||
| blender::MutableSpan<blender::Color4f> colors = | blender::MutableSpan<blender::ColorGeometry4f> colors = | ||||
| params.uninitialized_single_output<blender::Color4f>(1, "Color"); | params.uninitialized_single_output<blender::ColorGeometry4f>(1, "Color"); | ||||
| blender::MutableSpan<float> alphas = params.uninitialized_single_output<float>(2, "Alpha"); | blender::MutableSpan<float> alphas = params.uninitialized_single_output<float>(2, "Alpha"); | ||||
| for (int64_t i : mask) { | for (int64_t i : mask) { | ||||
| blender::Color4f color; | blender::ColorGeometry4f color; | ||||
| BKE_colorband_evaluate(&color_band_, values[i], color); | BKE_colorband_evaluate(&color_band_, values[i], color); | ||||
| colors[i] = color; | colors[i] = color; | ||||
| alphas[i] = color.a; | alphas[i] = color.a; | ||||
| } | } | ||||
| } | } | ||||
| }; | }; | ||||
| static void sh_node_valtorgb_expand_in_mf_network(blender::nodes::NodeMFNetworkBuilder &builder) | static void sh_node_valtorgb_expand_in_mf_network(blender::nodes::NodeMFNetworkBuilder &builder) | ||||
| ▲ Show 20 Lines • Show All 63 Lines • Show Last 20 Lines | |||||