KRSpotLight is now using KRNodeProperty

This commit is contained in:
2025-11-23 15:40:34 -08:00
parent 0a3a0d234e
commit 3d69a7154c
2 changed files with 10 additions and 10 deletions

View File

@@ -38,14 +38,12 @@ using namespace hydra;
void KRSpotLight::InitNodeInfo(KrNodeInfo* nodeInfo) void KRSpotLight::InitNodeInfo(KrNodeInfo* nodeInfo)
{ {
KRLight::InitNodeInfo(nodeInfo); KRLight::InitNodeInfo(nodeInfo);
nodeInfo->light.spot.inner_angle = M_PI_4; nodeInfo->light.spot.inner_angle = decltype(m_innerAngle)::defaultVal;
nodeInfo->light.spot.outer_angle = M_PI_2; nodeInfo->light.spot.outer_angle = decltype(m_outerAngle)::defaultVal;
} }
KRSpotLight::KRSpotLight(KRScene& scene, std::string name) : KRLight(scene, name) KRSpotLight::KRSpotLight(KRScene& scene, std::string name) : KRLight(scene, name)
{ {
m_innerAngle = M_PI_4;
m_outerAngle = M_PI_2;
} }
KRSpotLight::~KRSpotLight() KRSpotLight::~KRSpotLight()
@@ -61,8 +59,8 @@ std::string KRSpotLight::getElementName()
tinyxml2::XMLElement* KRSpotLight::saveXML(tinyxml2::XMLNode* parent) tinyxml2::XMLElement* KRSpotLight::saveXML(tinyxml2::XMLNode* parent)
{ {
tinyxml2::XMLElement* e = KRLight::saveXML(parent); tinyxml2::XMLElement* e = KRLight::saveXML(parent);
e->SetAttribute("inner_angle", m_innerAngle); m_innerAngle.save(e);
e->SetAttribute("outer_angle", m_outerAngle); m_outerAngle.save(e);
return e; return e;
} }
@@ -70,8 +68,8 @@ void KRSpotLight::loadXML(tinyxml2::XMLElement* e)
{ {
KRLight::loadXML(e); KRLight::loadXML(e);
e->QueryFloatAttribute("inner_angle", &m_innerAngle); m_innerAngle.load(e);
e->QueryFloatAttribute("outer_angle", &m_outerAngle); m_outerAngle.load(e);
} }
float KRSpotLight::getInnerAngle() float KRSpotLight::getInnerAngle()

View File

@@ -52,6 +52,8 @@ public:
void setOuterAngle(float outerAngle); void setOuterAngle(float outerAngle);
private: private:
float m_innerAngle; // Inner angle of the cone, in radians. Inside this radius, the light will be at full brightness // Inner angle of the cone, in radians. Inside this radius, the light will be at full brightness
float m_outerAngle; // Outer angle of the cone, in radians. Outside this radius, the light will be completely attenuated KRNODE_PROPERTY(float, m_innerAngle, M_PI_4, "inner_angle");
// Outer angle of the cone, in radians. Outside this radius, the light will be completely attenuated
KRNODE_PROPERTY(float, m_outerAngle, M_PI_2, "outer_angle");
}; };