提交 f7cf7f8a 编写于 作者: M Matt Pharr

Spectrum improvements / bugfix.

Actually initialize RGBSpectrum::rgb member variable in the constructor.
Remove now-unused ParameterType() and ParameterString() methods.
上级 ebb36d27
......@@ -60,16 +60,6 @@ std::string SpectrumHandle::ToString() const {
return DispatchCPU(tostr);
}
std::string SpectrumHandle::ParameterType() const {
auto pt = [&](auto ptr) { return ptr->ParameterType(); };
return DispatchCPU(pt);
}
std::string SpectrumHandle::ParameterString() const {
auto ps = [&](auto ptr) { return ptr->ParameterString(); };
return DispatchCPU(ps);
}
// Spectrum Method Definitions
Float PiecewiseLinearSpectrum::operator()(Float lambda) const {
// Handle _PiecewiseLinearSpectrum_ corner cases
......@@ -100,22 +90,14 @@ PiecewiseLinearSpectrum::PiecewiseLinearSpectrum(pstd::span<const Float> l,
}
std::string PiecewiseLinearSpectrum::ToString() const {
return std::string("[ PiecewiseLinearSpectrum ") + ParameterString() + " ]";
}
std::string PiecewiseLinearSpectrum::ParameterType() const {
return "spectrum";
}
std::string PiecewiseLinearSpectrum::ParameterString() const {
std::string name = FindMatchingNamedSpectrum(this);
if (!name.empty())
return StringPrintf("\"%s\"", name);
std::string ret;
std::string ret = "[ PiecewiseLinearSpectrum ";
for (size_t i = 0; i < lambdas.size(); ++i)
ret += StringPrintf("%f %f ", lambdas[i], values[i]);
return ret;
return ret + " ]";
}
pstd::optional<SpectrumHandle> PiecewiseLinearSpectrum::Read(const std::string &fn,
......@@ -173,14 +155,6 @@ std::string BlackbodySpectrum::ToString() const {
return StringPrintf("[ BlackbodySpectrum T: %f ]", T);
}
std::string BlackbodySpectrum::ParameterType() const {
return "blackbody";
}
std::string BlackbodySpectrum::ParameterString() const {
return StringPrintf("%f", T);
}
SampledSpectrum ConstantSpectrum::Sample(const SampledWavelengths &) const {
return SampledSpectrum(c);
}
......@@ -189,16 +163,6 @@ std::string ConstantSpectrum::ToString() const {
return StringPrintf("[ ConstantSpectrum c: %f ]", c);
}
std::string ConstantSpectrum::ParameterType() const {
LOG_FATAL("Shouldn't be called");
return {};
}
std::string ConstantSpectrum::ParameterString() const {
LOG_FATAL("Shouldn't be called");
return {};
}
std::string DenselySampledSpectrum::ToString() const {
std::string s = StringPrintf("[ DenselySampledSpectrum lambda_min: %d lambda_max: %d "
"values: [ ",
......@@ -209,16 +173,6 @@ std::string DenselySampledSpectrum::ToString() const {
return s;
}
std::string DenselySampledSpectrum::ParameterType() const {
LOG_FATAL("Shouldn't be called");
return {};
}
std::string DenselySampledSpectrum::ParameterString() const {
LOG_FATAL("Shouldn't be called");
return {};
}
std::string SampledWavelengths::ToString() const {
std::string r = "[";
for (size_t i = 0; i < lambda.size(); ++i)
......@@ -261,7 +215,7 @@ RGB SampledSpectrum::ToRGB(const SampledWavelengths &lambda,
return cs.ToRGB(xyz);
}
RGBSpectrum::RGBSpectrum(const RGBColorSpace &cs, const RGB &rgb) {
RGBSpectrum::RGBSpectrum(const RGBColorSpace &cs, const RGB &rgb) : rgb(rgb) {
Float m = std::max({rgb.r, rgb.g, rgb.b});
if (m <= 1)
rsp = cs.ToRGBCoeffs(rgb);
......@@ -279,23 +233,7 @@ RGBIlluminantSpectrum::RGBIlluminantSpectrum(const RGBColorSpace &cs, const RGB
}
std::string RGBSpectrum::ToString() const {
return StringPrintf("[ RGBSpectrum rsp: %s ]", rsp);
}
std::string RGBSpectrum::ParameterType() const {
return "rgb";
}
std::string RGBSpectrum::ParameterString() const {
return StringPrintf("%f %f %f", rgb.r, rgb.g, rgb.b);
}
std::string RGBIlluminantSpectrum::ParameterType() const {
return "rgb";
}
std::string RGBIlluminantSpectrum::ParameterString() const {
return StringPrintf("%f %f %f", rgb.r, rgb.g, rgb.b);
return StringPrintf("[ RGBSpectrum rgb: %s rsp: %s ]", rgb, rsp);
}
std::string RGBIlluminantSpectrum::ToString() const {
......
......@@ -51,8 +51,6 @@ class SpectrumHandle
// SpectrumHandle Public Methods
using TaggedPointer::TaggedPointer;
std::string ToString() const;
std::string ParameterType() const;
std::string ParameterString() const;
PBRT_CPU_GPU
Float operator()(Float lambda) const;
......@@ -360,8 +358,6 @@ class ConstantSpectrum {
Float MaxValue() const { return c; }
std::string ToString() const;
std::string ParameterType() const;
std::string ParameterString() const;
ConstantSpectrum(Float c) : c(c) {}
......@@ -401,8 +397,6 @@ class DenselySampledSpectrum {
Float MaxValue() const { return *std::max_element(values.begin(), values.end()); }
std::string ToString() const;
std::string ParameterType() const;
std::string ParameterString() const;
DenselySampledSpectrum(SpectrumHandle spec, int lambda_min = Lambda_min,
int lambda_max = Lambda_max, Allocator alloc = {})
......@@ -465,8 +459,6 @@ class PiecewiseLinearSpectrum {
Float operator()(Float lambda) const;
std::string ToString() const;
std::string ParameterType() const;
std::string ParameterString() const;
PiecewiseLinearSpectrum(pstd::span<const Float> lambdas,
pstd::span<const Float> values, Allocator alloc = {});
......@@ -509,8 +501,6 @@ class BlackbodySpectrum {
Float MaxValue() const { return 1.f; }
std::string ToString() const;
std::string ParameterType() const;
std::string ParameterString() const;
private:
// BlackbodySpectrum Private Members
......@@ -538,8 +528,6 @@ class RGBSpectrum {
}
std::string ToString() const;
std::string ParameterType() const;
std::string ParameterString() const;
private:
// RGBSpectrum Private Members
......@@ -574,8 +562,6 @@ class RGBIlluminantSpectrum {
}
std::string ToString() const;
std::string ParameterType() const;
std::string ParameterString() const;
private:
// RGBIlluminantSpectrum Private Members
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册