KRAmbientZone now using KRNodeProperty
This commit is contained in:
@@ -47,9 +47,6 @@ void KRAmbientZone::InitNodeInfo(KrNodeInfo* nodeInfo)
|
|||||||
|
|
||||||
KRAmbientZone::KRAmbientZone(KRScene& scene, std::string name)
|
KRAmbientZone::KRAmbientZone(KRScene& scene, std::string name)
|
||||||
: KRNode(scene, name)
|
: KRNode(scene, name)
|
||||||
, m_ambient_gain(1.f)
|
|
||||||
, m_gradient_distance(0.25f)
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -65,46 +62,31 @@ std::string KRAmbientZone::getElementName()
|
|||||||
tinyxml2::XMLElement* KRAmbientZone::saveXML(tinyxml2::XMLNode* parent)
|
tinyxml2::XMLElement* KRAmbientZone::saveXML(tinyxml2::XMLNode* parent)
|
||||||
{
|
{
|
||||||
tinyxml2::XMLElement* e = KRNode::saveXML(parent);
|
tinyxml2::XMLElement* e = KRNode::saveXML(parent);
|
||||||
e->SetAttribute("zone", m_zone.c_str());
|
m_zone.save(e);
|
||||||
e->SetAttribute("sample", m_ambient.getName().c_str());
|
m_ambient.save(e);
|
||||||
e->SetAttribute("gain", m_ambient_gain);
|
m_ambient_gain.save(e);
|
||||||
e->SetAttribute("gradient", m_gradient_distance);
|
m_gradient_distance.save(e);
|
||||||
return e;
|
return e;
|
||||||
}
|
}
|
||||||
|
|
||||||
void KRAmbientZone::loadXML(tinyxml2::XMLElement* e)
|
void KRAmbientZone::loadXML(tinyxml2::XMLElement* e)
|
||||||
{
|
{
|
||||||
KRNode::loadXML(e);
|
KRNode::loadXML(e);
|
||||||
|
m_zone.load(e);
|
||||||
m_zone = e->Attribute("zone");
|
m_gradient_distance.load(e);
|
||||||
|
m_ambient.load(e);
|
||||||
m_gradient_distance = 0.25f;
|
m_ambient_gain.load(e);
|
||||||
if (e->QueryFloatAttribute("gradient", &m_gradient_distance) != tinyxml2::XML_SUCCESS) {
|
|
||||||
m_gradient_distance = 0.25f;
|
|
||||||
}
|
|
||||||
|
|
||||||
const char* szAudioSampleName = e->Attribute("sample");
|
|
||||||
if (szAudioSampleName == nullptr) {
|
|
||||||
m_ambient.clear();
|
|
||||||
} else {
|
|
||||||
m_ambient.set(szAudioSampleName);
|
|
||||||
}
|
|
||||||
|
|
||||||
m_ambient_gain = 1.0f;
|
|
||||||
if (e->QueryFloatAttribute("gain", &m_ambient_gain) != tinyxml2::XML_SUCCESS) {
|
|
||||||
m_ambient_gain = 1.0f;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
KRAudioSample* KRAmbientZone::getAmbient()
|
KRAudioSample* KRAmbientZone::getAmbient()
|
||||||
{
|
{
|
||||||
m_ambient.bind(&getContext());
|
m_ambient.val.bind(&getContext());
|
||||||
return m_ambient.get();
|
return m_ambient.val.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
void KRAmbientZone::setAmbient(const std::string& ambient)
|
void KRAmbientZone::setAmbient(const std::string& ambient)
|
||||||
{
|
{
|
||||||
m_ambient.set(ambient);
|
m_ambient.val.set(ambient);
|
||||||
}
|
}
|
||||||
|
|
||||||
float KRAmbientZone::getAmbientGain()
|
float KRAmbientZone::getAmbientGain()
|
||||||
|
|||||||
@@ -68,10 +68,8 @@ public:
|
|||||||
float getContainment(const hydra::Vector3& pos);
|
float getContainment(const hydra::Vector3& pos);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::string m_zone;
|
KRNODE_PROPERTY(std::string, m_zone, "", "zone");
|
||||||
|
KRNODE_PROPERTY(float, m_gradient_distance, 0.25f, "gradient");
|
||||||
float m_gradient_distance;
|
KRNODE_PROPERTY(float, m_ambient_gain, 1.f, "gain");
|
||||||
|
KRNODE_PROPERTY(KRAudioSampleBinding, m_ambient, nullptr, "sample");
|
||||||
KRAudioSampleBinding m_ambient;
|
|
||||||
float m_ambient_gain;
|
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user