Implemented KrInitNodeInfo
This commit is contained in:
@@ -9,6 +9,16 @@
|
|||||||
#include "KRAmbientZone.h"
|
#include "KRAmbientZone.h"
|
||||||
#include "KRContext.h"
|
#include "KRContext.h"
|
||||||
|
|
||||||
|
/* static */
|
||||||
|
void KRAmbientZone::InitNodeInfo(KrNodeInfo* nodeInfo)
|
||||||
|
{
|
||||||
|
KRNode::InitNodeInfo(nodeInfo);
|
||||||
|
nodeInfo->ambient_zone.gain = 1.0f;
|
||||||
|
nodeInfo->ambient_zone.gradient = 0.25f;
|
||||||
|
nodeInfo->ambient_zone.pZoneName = nullptr;
|
||||||
|
nodeInfo->ambient_zone.sample = -1;
|
||||||
|
}
|
||||||
|
|
||||||
KRAmbientZone::KRAmbientZone(KRScene &scene, std::string name) : KRNode(scene, name)
|
KRAmbientZone::KRAmbientZone(KRScene &scene, std::string name) : KRNode(scene, name)
|
||||||
{
|
{
|
||||||
m_ambient = "";
|
m_ambient = "";
|
||||||
|
|||||||
@@ -15,6 +15,8 @@
|
|||||||
|
|
||||||
class KRAmbientZone : public KRNode {
|
class KRAmbientZone : public KRNode {
|
||||||
public:
|
public:
|
||||||
|
static void InitNodeInfo(KrNodeInfo* nodeInfo);
|
||||||
|
|
||||||
KRAmbientZone(KRScene &scene, std::string name);
|
KRAmbientZone(KRScene &scene, std::string name);
|
||||||
virtual ~KRAmbientZone();
|
virtual ~KRAmbientZone();
|
||||||
virtual std::string getElementName();
|
virtual std::string getElementName();
|
||||||
|
|||||||
@@ -35,6 +35,22 @@
|
|||||||
#include "KRAudioSample.h"
|
#include "KRAudioSample.h"
|
||||||
#include "KRAudioBuffer.h"
|
#include "KRAudioBuffer.h"
|
||||||
|
|
||||||
|
/* static */
|
||||||
|
void KRAudioSource::InitNodeInfo(KrNodeInfo* nodeInfo)
|
||||||
|
{
|
||||||
|
KRNode::InitNodeInfo(nodeInfo);
|
||||||
|
nodeInfo->audio_source.enable_obstruction = true;
|
||||||
|
nodeInfo->audio_source.enable_occlusion = true;
|
||||||
|
nodeInfo->audio_source.gain = 1.0f;
|
||||||
|
nodeInfo->audio_source.is_3d = true;
|
||||||
|
nodeInfo->audio_source.looping = false;
|
||||||
|
nodeInfo->audio_source.pitch = 1.0f;
|
||||||
|
nodeInfo->audio_source.reference_distance = 1.0f;
|
||||||
|
nodeInfo->audio_source.reverb = 0.0f;
|
||||||
|
nodeInfo->audio_source.rolloff_factor = 2.0f;
|
||||||
|
nodeInfo->audio_source.sample = -1;
|
||||||
|
}
|
||||||
|
|
||||||
KRAudioSource::KRAudioSource(KRScene &scene, std::string name) : KRNode(scene, name)
|
KRAudioSource::KRAudioSource(KRScene &scene, std::string name) : KRNode(scene, name)
|
||||||
{
|
{
|
||||||
m_currentBufferFrame = 0;
|
m_currentBufferFrame = 0;
|
||||||
|
|||||||
@@ -42,6 +42,8 @@ class KRAudioBuffer;
|
|||||||
|
|
||||||
class KRAudioSource : public KRNode {
|
class KRAudioSource : public KRNode {
|
||||||
public:
|
public:
|
||||||
|
static void InitNodeInfo(KrNodeInfo* nodeInfo);
|
||||||
|
|
||||||
KRAudioSource(KRScene &scene, std::string name);
|
KRAudioSource(KRScene &scene, std::string name);
|
||||||
virtual ~KRAudioSource();
|
virtual ~KRAudioSource();
|
||||||
virtual std::string getElementName();
|
virtual std::string getElementName();
|
||||||
|
|||||||
@@ -9,6 +9,13 @@
|
|||||||
#include "KRBone.h"
|
#include "KRBone.h"
|
||||||
#include "KRContext.h"
|
#include "KRContext.h"
|
||||||
|
|
||||||
|
/* static */
|
||||||
|
void KRBone::InitNodeInfo(KrNodeInfo* nodeInfo)
|
||||||
|
{
|
||||||
|
KRNode::InitNodeInfo(nodeInfo);
|
||||||
|
// No additional members
|
||||||
|
}
|
||||||
|
|
||||||
KRBone::KRBone(KRScene &scene, std::string name) : KRNode(scene, name)
|
KRBone::KRBone(KRScene &scene, std::string name) : KRNode(scene, name)
|
||||||
{
|
{
|
||||||
setScaleCompensation(true);
|
setScaleCompensation(true);
|
||||||
|
|||||||
@@ -15,6 +15,8 @@
|
|||||||
|
|
||||||
class KRBone : public KRNode {
|
class KRBone : public KRNode {
|
||||||
public:
|
public:
|
||||||
|
static void InitNodeInfo(KrNodeInfo* nodeInfo);
|
||||||
|
|
||||||
KRBone(KRScene &scene, std::string name);
|
KRBone(KRScene &scene, std::string name);
|
||||||
virtual ~KRBone();
|
virtual ~KRBone();
|
||||||
virtual std::string getElementName();
|
virtual std::string getElementName();
|
||||||
|
|||||||
@@ -34,6 +34,13 @@
|
|||||||
#include "KRStockGeometry.h"
|
#include "KRStockGeometry.h"
|
||||||
#include "KRDirectionalLight.h"
|
#include "KRDirectionalLight.h"
|
||||||
|
|
||||||
|
/* static */
|
||||||
|
void KRCamera::InitNodeInfo(KrNodeInfo* nodeInfo)
|
||||||
|
{
|
||||||
|
KRNode::InitNodeInfo(nodeInfo);
|
||||||
|
nodeInfo->camera.skybox_texture = -1;
|
||||||
|
}
|
||||||
|
|
||||||
KRCamera::KRCamera(KRScene &scene, std::string name) : KRNode(scene, name) {
|
KRCamera::KRCamera(KRScene &scene, std::string name) : KRNode(scene, name) {
|
||||||
m_last_frame_start = 0;
|
m_last_frame_start = 0;
|
||||||
|
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ class KRViewport;
|
|||||||
|
|
||||||
class KRCamera : public KRNode {
|
class KRCamera : public KRNode {
|
||||||
public:
|
public:
|
||||||
|
static void InitNodeInfo(KrNodeInfo* nodeInfo);
|
||||||
KRCamera(KRScene &scene, std::string name);
|
KRCamera(KRScene &scene, std::string name);
|
||||||
virtual ~KRCamera();
|
virtual ~KRCamera();
|
||||||
|
|
||||||
|
|||||||
@@ -34,6 +34,14 @@
|
|||||||
#include "KRContext.h"
|
#include "KRContext.h"
|
||||||
#include "KRMesh.h"
|
#include "KRMesh.h"
|
||||||
|
|
||||||
|
/* static */
|
||||||
|
void KRCollider::InitNodeInfo(KrNodeInfo* nodeInfo)
|
||||||
|
{
|
||||||
|
KRNode::InitNodeInfo(nodeInfo);
|
||||||
|
nodeInfo->collider.audio_occlusion = 1.0f;
|
||||||
|
nodeInfo->collider.layer_mask = 65535;
|
||||||
|
nodeInfo->collider.mesh = -1;
|
||||||
|
}
|
||||||
|
|
||||||
KRCollider::KRCollider(KRScene &scene, std::string collider_name, std::string model_name, unsigned int layer_mask, float audio_occlusion) : KRNode(scene, collider_name) {
|
KRCollider::KRCollider(KRScene &scene, std::string collider_name, std::string model_name, unsigned int layer_mask, float audio_occlusion) : KRNode(scene, collider_name) {
|
||||||
m_model_name = model_name;
|
m_model_name = model_name;
|
||||||
|
|||||||
@@ -49,6 +49,8 @@
|
|||||||
class KRCollider : public KRNode {
|
class KRCollider : public KRNode {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
static void InitNodeInfo(KrNodeInfo* nodeInfo);
|
||||||
|
|
||||||
KRCollider(KRScene &scene, std::string collider_name, std::string model_name, unsigned int layer_mask, float audio_occlusion);
|
KRCollider(KRScene &scene, std::string collider_name, std::string model_name, unsigned int layer_mask, float audio_occlusion);
|
||||||
virtual ~KRCollider();
|
virtual ~KRCollider();
|
||||||
|
|
||||||
|
|||||||
@@ -14,6 +14,13 @@
|
|||||||
#include "assert.h"
|
#include "assert.h"
|
||||||
#include "KRStockGeometry.h"
|
#include "KRStockGeometry.h"
|
||||||
|
|
||||||
|
/* static */
|
||||||
|
void KRDirectionalLight::InitNodeInfo(KrNodeInfo* nodeInfo)
|
||||||
|
{
|
||||||
|
KRLight::InitNodeInfo(nodeInfo);
|
||||||
|
// No additional members
|
||||||
|
}
|
||||||
|
|
||||||
KRDirectionalLight::KRDirectionalLight(KRScene &scene, std::string name) : KRLight(scene, name)
|
KRDirectionalLight::KRDirectionalLight(KRScene &scene, std::string name) : KRLight(scene, name)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|||||||
@@ -14,6 +14,7 @@
|
|||||||
class KRDirectionalLight : public KRLight {
|
class KRDirectionalLight : public KRLight {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
static void InitNodeInfo(KrNodeInfo* nodeInfo);
|
||||||
|
|
||||||
KRDirectionalLight(KRScene &scene, std::string name);
|
KRDirectionalLight(KRScene &scene, std::string name);
|
||||||
virtual ~KRDirectionalLight();
|
virtual ~KRDirectionalLight();
|
||||||
|
|||||||
@@ -10,6 +10,17 @@
|
|||||||
#include "KRLODSet.h"
|
#include "KRLODSet.h"
|
||||||
#include "KRContext.h"
|
#include "KRContext.h"
|
||||||
|
|
||||||
|
/* static */
|
||||||
|
void KRLODGroup::InitNodeInfo(KrNodeInfo* nodeInfo)
|
||||||
|
{
|
||||||
|
KRNode::InitNodeInfo(nodeInfo);
|
||||||
|
nodeInfo->lod_group.min_distance = 0.0f;
|
||||||
|
nodeInfo->lod_group.max_distance = 0.0f;
|
||||||
|
nodeInfo->lod_group.reference_min = Vector3::Zero();
|
||||||
|
nodeInfo->lod_group.reference_max = Vector3::Zero();
|
||||||
|
nodeInfo->lod_group.use_world_units = true;
|
||||||
|
}
|
||||||
|
|
||||||
KRLODGroup::KRLODGroup(KRScene &scene, std::string name) : KRNode(scene, name)
|
KRLODGroup::KRLODGroup(KRScene &scene, std::string name) : KRNode(scene, name)
|
||||||
{
|
{
|
||||||
m_min_distance = 0.0f;
|
m_min_distance = 0.0f;
|
||||||
|
|||||||
@@ -14,6 +14,7 @@
|
|||||||
|
|
||||||
class KRLODGroup : public KRNode {
|
class KRLODGroup : public KRNode {
|
||||||
public:
|
public:
|
||||||
|
static void InitNodeInfo(KrNodeInfo* nodeInfo);
|
||||||
KRLODGroup(KRScene &scene, std::string name);
|
KRLODGroup(KRScene &scene, std::string name);
|
||||||
virtual ~KRLODGroup();
|
virtual ~KRLODGroup();
|
||||||
virtual std::string getElementName();
|
virtual std::string getElementName();
|
||||||
|
|||||||
@@ -10,6 +10,13 @@
|
|||||||
#include "KRLODGroup.h"
|
#include "KRLODGroup.h"
|
||||||
#include "KRContext.h"
|
#include "KRContext.h"
|
||||||
|
|
||||||
|
/* static */
|
||||||
|
void KRLODSet::InitNodeInfo(KrNodeInfo* nodeInfo)
|
||||||
|
{
|
||||||
|
KRNode::InitNodeInfo(nodeInfo);
|
||||||
|
// No additional members
|
||||||
|
}
|
||||||
|
|
||||||
KRLODSet::KRLODSet(KRScene &scene, std::string name) : KRNode(scene, name)
|
KRLODSet::KRLODSet(KRScene &scene, std::string name) : KRNode(scene, name)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ class KRLODGroup;
|
|||||||
|
|
||||||
class KRLODSet : public KRNode {
|
class KRLODSet : public KRNode {
|
||||||
public:
|
public:
|
||||||
|
static void InitNodeInfo(KrNodeInfo* nodeInfo);
|
||||||
KRLODSet(KRScene &scene, std::string name);
|
KRLODSet(KRScene &scene, std::string name);
|
||||||
virtual ~KRLODSet();
|
virtual ~KRLODSet();
|
||||||
virtual std::string getElementName();
|
virtual std::string getElementName();
|
||||||
|
|||||||
@@ -21,6 +21,22 @@
|
|||||||
#include "KRSpotLight.h"
|
#include "KRSpotLight.h"
|
||||||
#include "KRPointLight.h"
|
#include "KRPointLight.h"
|
||||||
|
|
||||||
|
/* static */
|
||||||
|
void KRLight::InitNodeInfo(KrNodeInfo* nodeInfo)
|
||||||
|
{
|
||||||
|
KRNode::InitNodeInfo(nodeInfo);
|
||||||
|
nodeInfo->light.casts_shadow = true;
|
||||||
|
nodeInfo->light.color = Vector3::One();
|
||||||
|
nodeInfo->light.decay_start = 0.0f;
|
||||||
|
nodeInfo->light.dust_particle_density = 0.1f;
|
||||||
|
nodeInfo->light.dust_particle_intensity = 1.0f;
|
||||||
|
nodeInfo->light.dust_particle_size = 1.0f;
|
||||||
|
nodeInfo->light.flare_occlusion_size = 0.05f;
|
||||||
|
nodeInfo->light.flare_size = 0.0f;
|
||||||
|
nodeInfo->light.flare_texture = -1;
|
||||||
|
nodeInfo->light.intensity = 1.0f;
|
||||||
|
nodeInfo->light.light_shafts = true;
|
||||||
|
}
|
||||||
|
|
||||||
KRLight::KRLight(KRScene &scene, std::string name) : KRNode(scene, name)
|
KRLight::KRLight(KRScene &scene, std::string name) : KRNode(scene, name)
|
||||||
{
|
{
|
||||||
@@ -35,7 +51,9 @@ KRLight::KRLight(KRScene &scene, std::string name) : KRNode(scene, name)
|
|||||||
m_light_shafts = true;
|
m_light_shafts = true;
|
||||||
m_dust_particle_density = 0.1f;
|
m_dust_particle_density = 0.1f;
|
||||||
m_dust_particle_size = 1.0f;
|
m_dust_particle_size = 1.0f;
|
||||||
|
m_dust_particle_intensity = 1.0f;
|
||||||
m_occlusionQuery = 0;
|
m_occlusionQuery = 0;
|
||||||
|
m_decayStart = 0;
|
||||||
|
|
||||||
// Initialize shadow buffers
|
// Initialize shadow buffers
|
||||||
m_cShadowBuffers = 0;
|
m_cShadowBuffers = 0;
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ static const float KRLIGHT_MIN_INFLUENCE = 0.15f; // 0.05f
|
|||||||
|
|
||||||
class KRLight : public KRNode {
|
class KRLight : public KRNode {
|
||||||
public:
|
public:
|
||||||
|
static void InitNodeInfo(KrNodeInfo* nodeInfo);
|
||||||
|
|
||||||
virtual ~KRLight();
|
virtual ~KRLight();
|
||||||
virtual std::string getElementName() = 0;
|
virtual std::string getElementName() = 0;
|
||||||
|
|||||||
@@ -9,6 +9,13 @@
|
|||||||
#include "KRLocator.h"
|
#include "KRLocator.h"
|
||||||
#include "KRContext.h"
|
#include "KRContext.h"
|
||||||
|
|
||||||
|
/* static */
|
||||||
|
void KRLocator::InitNodeInfo(KrNodeInfo* nodeInfo)
|
||||||
|
{
|
||||||
|
KRNode::InitNodeInfo(nodeInfo);
|
||||||
|
// No additional members
|
||||||
|
}
|
||||||
|
|
||||||
KRLocator::KRLocator(KRScene &scene, std::string name) : KRNode(scene, name)
|
KRLocator::KRLocator(KRScene &scene, std::string name) : KRNode(scene, name)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|||||||
@@ -15,6 +15,8 @@
|
|||||||
|
|
||||||
class KRLocator : public KRNode {
|
class KRLocator : public KRNode {
|
||||||
public:
|
public:
|
||||||
|
static void InitNodeInfo(KrNodeInfo* nodeInfo);
|
||||||
|
|
||||||
KRLocator(KRScene &scene, std::string name);
|
KRLocator(KRScene &scene, std::string name);
|
||||||
virtual ~KRLocator();
|
virtual ~KRLocator();
|
||||||
virtual std::string getElementName();
|
virtual std::string getElementName();
|
||||||
|
|||||||
@@ -35,6 +35,19 @@
|
|||||||
#include "KRContext.h"
|
#include "KRContext.h"
|
||||||
#include "KRMesh.h"
|
#include "KRMesh.h"
|
||||||
|
|
||||||
|
/* static */
|
||||||
|
void KRModel::InitNodeInfo(KrNodeInfo* nodeInfo)
|
||||||
|
{
|
||||||
|
KRNode::InitNodeInfo(nodeInfo);
|
||||||
|
nodeInfo->model.faces_camera = false;
|
||||||
|
nodeInfo->model.light_map_texture = -1;
|
||||||
|
nodeInfo->model.lod_min_coverage = 0.0f;
|
||||||
|
nodeInfo->model.mesh = -1;
|
||||||
|
nodeInfo->model.receives_shadow = true;
|
||||||
|
nodeInfo->model.rim_color = Vector3::Zero();
|
||||||
|
nodeInfo->model.rim_power = 0.0f;
|
||||||
|
}
|
||||||
|
|
||||||
KRModel::KRModel(KRScene &scene, std::string instance_name, std::string model_name, std::string light_map, float lod_min_coverage, bool receives_shadow, bool faces_camera, Vector3 rim_color, float rim_power) : KRNode(scene, instance_name) {
|
KRModel::KRModel(KRScene &scene, std::string instance_name, std::string model_name, std::string light_map, float lod_min_coverage, bool receives_shadow, bool faces_camera, Vector3 rim_color, float rim_power) : KRNode(scene, instance_name) {
|
||||||
m_lightMap = light_map;
|
m_lightMap = light_map;
|
||||||
m_pLightMap = NULL;
|
m_pLightMap = NULL;
|
||||||
|
|||||||
@@ -47,6 +47,8 @@
|
|||||||
class KRModel : public KRNode {
|
class KRModel : public KRNode {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
static void InitNodeInfo(KrNodeInfo* nodeInfo);
|
||||||
|
|
||||||
KRModel(KRScene &scene, std::string instance_name, std::string model_name, std::string light_map, float lod_min_coverage, bool receives_shadow, bool faces_camera, Vector3 rim_color = Vector3::Zero(), float rim_power = 0.0f);
|
KRModel(KRScene &scene, std::string instance_name, std::string model_name, std::string light_map, float lod_min_coverage, bool receives_shadow, bool faces_camera, Vector3 rim_color = Vector3::Zero(), float rim_power = 0.0f);
|
||||||
virtual ~KRModel();
|
virtual ~KRModel();
|
||||||
|
|
||||||
|
|||||||
@@ -25,6 +25,21 @@
|
|||||||
#include "KRReverbZone.h"
|
#include "KRReverbZone.h"
|
||||||
#include "KRSprite.h"
|
#include "KRSprite.h"
|
||||||
|
|
||||||
|
/* static */
|
||||||
|
void KRNode::InitNodeInfo(KrNodeInfo* nodeInfo)
|
||||||
|
{
|
||||||
|
nodeInfo->pName = nullptr;
|
||||||
|
nodeInfo->translate = Vector3::Zero();
|
||||||
|
nodeInfo->scale = Vector3::One();
|
||||||
|
nodeInfo->rotate = Vector3::Zero();
|
||||||
|
nodeInfo->pre_rotate = Vector3::Zero();
|
||||||
|
nodeInfo->post_rotate = Vector3::Zero();
|
||||||
|
nodeInfo->rotate_offset = Vector3::Zero();
|
||||||
|
nodeInfo->scale_offset = Vector3::Zero();
|
||||||
|
nodeInfo->rotate_pivot = Vector3::Zero();
|
||||||
|
nodeInfo->scale_pivot = Vector3::Zero();
|
||||||
|
}
|
||||||
|
|
||||||
KRNode::KRNode(KRScene &scene, std::string name) : KRContextObject(scene.getContext())
|
KRNode::KRNode(KRScene &scene, std::string name) : KRContextObject(scene.getContext())
|
||||||
{
|
{
|
||||||
m_name = name;
|
m_name = name;
|
||||||
|
|||||||
@@ -60,10 +60,13 @@ public:
|
|||||||
LOD_VISIBILITY_VISIBLE
|
LOD_VISIBILITY_VISIBLE
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static void InitNodeInfo(KrNodeInfo* nodeInfo);
|
||||||
|
|
||||||
KRNode(KRScene &scene, std::string name);
|
KRNode(KRScene &scene, std::string name);
|
||||||
virtual ~KRNode();
|
virtual ~KRNode();
|
||||||
|
|
||||||
virtual tinyxml2::XMLElement *saveXML( tinyxml2::XMLNode *parent);
|
virtual tinyxml2::XMLElement *saveXML( tinyxml2::XMLNode *parent);
|
||||||
|
|
||||||
static KRNode *LoadXML(KRScene &scene, tinyxml2::XMLElement *e);
|
static KRNode *LoadXML(KRScene &scene, tinyxml2::XMLElement *e);
|
||||||
virtual void loadXML(tinyxml2::XMLElement *e);
|
virtual void loadXML(tinyxml2::XMLElement *e);
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,13 @@
|
|||||||
#include "KRContext.h"
|
#include "KRContext.h"
|
||||||
#include "KRStockGeometry.h"
|
#include "KRStockGeometry.h"
|
||||||
|
|
||||||
|
/* static */
|
||||||
|
void KRPointLight::InitNodeInfo(KrNodeInfo* nodeInfo)
|
||||||
|
{
|
||||||
|
KRLight::InitNodeInfo(nodeInfo);
|
||||||
|
// No additional members
|
||||||
|
}
|
||||||
|
|
||||||
KRPointLight::KRPointLight(KRScene &scene, std::string name) : KRLight(scene, name)
|
KRPointLight::KRPointLight(KRScene &scene, std::string name) : KRLight(scene, name)
|
||||||
{
|
{
|
||||||
m_sphereVertices = NULL;
|
m_sphereVertices = NULL;
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
class KRPointLight : public KRLight {
|
class KRPointLight : public KRLight {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
static void InitNodeInfo(KrNodeInfo* nodeInfo);
|
||||||
KRPointLight(KRScene &scene, std::string name);
|
KRPointLight(KRScene &scene, std::string name);
|
||||||
virtual ~KRPointLight();
|
virtual ~KRPointLight();
|
||||||
|
|
||||||
|
|||||||
@@ -9,6 +9,16 @@
|
|||||||
#include "KRReverbZone.h"
|
#include "KRReverbZone.h"
|
||||||
#include "KRContext.h"
|
#include "KRContext.h"
|
||||||
|
|
||||||
|
/* static */
|
||||||
|
void KRReverbZone::InitNodeInfo(KrNodeInfo* nodeInfo)
|
||||||
|
{
|
||||||
|
KRNode::InitNodeInfo(nodeInfo);
|
||||||
|
nodeInfo->reverb_zone.gain = 1.0f;
|
||||||
|
nodeInfo->reverb_zone.gradient = 0.25f;
|
||||||
|
nodeInfo->reverb_zone.sample = -1;
|
||||||
|
nodeInfo->reverb_zone.pZoneName = nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
KRReverbZone::KRReverbZone(KRScene &scene, std::string name) : KRNode(scene, name)
|
KRReverbZone::KRReverbZone(KRScene &scene, std::string name) : KRNode(scene, name)
|
||||||
{
|
{
|
||||||
m_reverb = "";
|
m_reverb = "";
|
||||||
|
|||||||
@@ -15,6 +15,8 @@
|
|||||||
|
|
||||||
class KRReverbZone : public KRNode {
|
class KRReverbZone : public KRNode {
|
||||||
public:
|
public:
|
||||||
|
static void InitNodeInfo(KrNodeInfo* nodeInfo);
|
||||||
|
|
||||||
KRReverbZone(KRScene &scene, std::string name);
|
KRReverbZone(KRScene &scene, std::string name);
|
||||||
virtual ~KRReverbZone();
|
virtual ~KRReverbZone();
|
||||||
virtual std::string getElementName();
|
virtual std::string getElementName();
|
||||||
|
|||||||
@@ -9,8 +9,18 @@
|
|||||||
#include "KREngine-common.h"
|
#include "KREngine-common.h"
|
||||||
#include "KRSpotLight.h"
|
#include "KRSpotLight.h"
|
||||||
|
|
||||||
|
/* static */
|
||||||
|
void KRSpotLight::InitNodeInfo(KrNodeInfo* nodeInfo)
|
||||||
|
{
|
||||||
|
KRLight::InitNodeInfo(nodeInfo);
|
||||||
|
nodeInfo->light.spot.inner_angle = M_PI_4;
|
||||||
|
nodeInfo->light.spot.outer_angle = M_PI_2;
|
||||||
|
}
|
||||||
|
|
||||||
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()
|
||||||
|
|||||||
@@ -13,6 +13,8 @@
|
|||||||
|
|
||||||
class KRSpotLight : public KRLight {
|
class KRSpotLight : public KRLight {
|
||||||
public:
|
public:
|
||||||
|
static void InitNodeInfo(KrNodeInfo* nodeInfo);
|
||||||
|
|
||||||
KRSpotLight(KRScene &scene, std::string name);
|
KRSpotLight(KRScene &scene, std::string name);
|
||||||
virtual ~KRSpotLight();
|
virtual ~KRSpotLight();
|
||||||
|
|
||||||
|
|||||||
@@ -21,6 +21,13 @@
|
|||||||
#include "KRSpotLight.h"
|
#include "KRSpotLight.h"
|
||||||
#include "KRPointLight.h"
|
#include "KRPointLight.h"
|
||||||
|
|
||||||
|
/* static */
|
||||||
|
void KRSprite::InitNodeInfo(KrNodeInfo* nodeInfo)
|
||||||
|
{
|
||||||
|
KRNode::InitNodeInfo(nodeInfo);
|
||||||
|
nodeInfo->sprite.alpha = 1.0f;
|
||||||
|
nodeInfo->sprite.texture = -1;
|
||||||
|
}
|
||||||
|
|
||||||
KRSprite::KRSprite(KRScene &scene, std::string name) : KRNode(scene, name)
|
KRSprite::KRSprite(KRScene &scene, std::string name) : KRNode(scene, name)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -15,6 +15,8 @@
|
|||||||
|
|
||||||
class KRSprite : public KRNode {
|
class KRSprite : public KRNode {
|
||||||
public:
|
public:
|
||||||
|
static void InitNodeInfo(KrNodeInfo* nodeInfo);
|
||||||
|
|
||||||
KRSprite(KRScene &scene, std::string name);
|
KRSprite(KRScene &scene, std::string name);
|
||||||
|
|
||||||
virtual ~KRSprite();
|
virtual ~KRSprite();
|
||||||
|
|||||||
@@ -2,6 +2,22 @@
|
|||||||
|
|
||||||
#include "KRContext.h"
|
#include "KRContext.h"
|
||||||
#include "KRBundle.h"
|
#include "KRBundle.h"
|
||||||
|
#include "hydra.h"
|
||||||
|
#include "KRLODSet.h"
|
||||||
|
#include "KRLODGroup.h"
|
||||||
|
#include "KRPointLight.h"
|
||||||
|
#include "KRDirectionalLight.h"
|
||||||
|
#include "KRSpotLight.h"
|
||||||
|
#include "KRSprite.h"
|
||||||
|
#include "KRModel.h"
|
||||||
|
#include "KRCollider.h"
|
||||||
|
#include "KRBone.h"
|
||||||
|
#include "KRLocator.h"
|
||||||
|
#include "KRAudioSource.h"
|
||||||
|
#include "KRAmbientZone.h"
|
||||||
|
#include "KRReverbZone.h"
|
||||||
|
|
||||||
|
using namespace kraken;
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
@@ -86,3 +102,58 @@ KrResult KrCreateScene(const KrCreateSceneInfo* pCreateSceneInfo)
|
|||||||
}
|
}
|
||||||
return sContext->createScene(pCreateSceneInfo);
|
return sContext->createScene(pCreateSceneInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
KrResult KrInitNodeInfo(KrNodeInfo* pNodeInfo, KrStructureType nodeType)
|
||||||
|
{
|
||||||
|
pNodeInfo->sType = nodeType;
|
||||||
|
switch (nodeType) {
|
||||||
|
case KR_STRUCTURE_TYPE_NODE:
|
||||||
|
KRNode::InitNodeInfo(pNodeInfo);
|
||||||
|
break;
|
||||||
|
case KR_STRUCTURE_TYPE_NODE_CAMERA:
|
||||||
|
KRCamera::InitNodeInfo(pNodeInfo);
|
||||||
|
break;
|
||||||
|
case KR_STRUCTURE_TYPE_NODE_LOD_SET:
|
||||||
|
KRLODSet::InitNodeInfo(pNodeInfo);
|
||||||
|
break;
|
||||||
|
case KR_STRUCTURE_TYPE_NODE_LOD_GROUP:
|
||||||
|
KRLODGroup::InitNodeInfo(pNodeInfo);
|
||||||
|
break;
|
||||||
|
case KR_STRUCTURE_TYPE_NODE_POINT_LIGHT:
|
||||||
|
KRPointLight::InitNodeInfo(pNodeInfo);
|
||||||
|
break;
|
||||||
|
case KR_STRUCTURE_TYPE_NODE_DIRECTIONAL_LIGHT:
|
||||||
|
KRDirectionalLight::InitNodeInfo(pNodeInfo);
|
||||||
|
break;
|
||||||
|
case KR_STRUCTURE_TYPE_NODE_SPOT_LIGHT:
|
||||||
|
KRSpotLight::InitNodeInfo(pNodeInfo);
|
||||||
|
break;
|
||||||
|
case KR_STRUCTURE_TYPE_NODE_SPRITE:
|
||||||
|
KRSprite::InitNodeInfo(pNodeInfo);
|
||||||
|
break;
|
||||||
|
case KR_STRUCTURE_TYPE_NODE_MODEL:
|
||||||
|
KRModel::InitNodeInfo(pNodeInfo);
|
||||||
|
break;
|
||||||
|
case KR_STRUCTURE_TYPE_NODE_COLLIDER:
|
||||||
|
KRCollider::InitNodeInfo(pNodeInfo);
|
||||||
|
break;
|
||||||
|
case KR_STRUCTURE_TYPE_NODE_BONE:
|
||||||
|
KRBone::InitNodeInfo(pNodeInfo);
|
||||||
|
break;
|
||||||
|
case KR_STRUCTURE_TYPE_NODE_LOCATOR:
|
||||||
|
KRLocator::InitNodeInfo(pNodeInfo);
|
||||||
|
break;
|
||||||
|
case KR_STRUCTURE_TYPE_NODE_AUDIO_SOURCE:
|
||||||
|
KRAudioSource::InitNodeInfo(pNodeInfo);
|
||||||
|
break;
|
||||||
|
case KR_STRUCTURE_TYPE_NODE_AMBIENT_ZONE:
|
||||||
|
KRAmbientZone::InitNodeInfo(pNodeInfo);
|
||||||
|
break;
|
||||||
|
case KR_STRUCTURE_TYPE_NODE_REVERB_ZONE:
|
||||||
|
KRReverbZone::InitNodeInfo(pNodeInfo);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return KR_ERROR_INCORRECT_TYPE;
|
||||||
|
}
|
||||||
|
return KR_SUCCESS;
|
||||||
|
}
|
||||||
@@ -76,6 +76,7 @@ typedef enum {
|
|||||||
KR_STRUCTURE_TYPE_NODE_AUDIO_SOURCE,
|
KR_STRUCTURE_TYPE_NODE_AUDIO_SOURCE,
|
||||||
KR_STRUCTURE_TYPE_NODE_AMBIENT_ZONE,
|
KR_STRUCTURE_TYPE_NODE_AMBIENT_ZONE,
|
||||||
KR_STRUCTURE_TYPE_NODE_REVERB_ZONE,
|
KR_STRUCTURE_TYPE_NODE_REVERB_ZONE,
|
||||||
|
KR_STRUCTURE_TYPE_NODE_MAX_ENUM,
|
||||||
|
|
||||||
KR_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
|
KR_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
|
||||||
} KrStructureType;
|
} KrStructureType;
|
||||||
@@ -146,58 +147,58 @@ typedef struct {
|
|||||||
kraken::Vector3 rotate_pivot;
|
kraken::Vector3 rotate_pivot;
|
||||||
kraken::Vector3 scale_pivot;
|
kraken::Vector3 scale_pivot;
|
||||||
union {
|
union {
|
||||||
struct node {
|
struct {
|
||||||
// KR_STRUCTURE_TYPE_NODE
|
// KR_STRUCTURE_TYPE_NODE
|
||||||
// No additional members
|
// No additional members
|
||||||
};
|
} node;
|
||||||
struct camera {
|
struct {
|
||||||
// KR_STRUCTURE_TYPE_NODE_CAMERA
|
// KR_STRUCTURE_TYPE_NODE_CAMERA
|
||||||
KrResourceMapIndex skybox_texture;
|
KrResourceMapIndex skybox_texture;
|
||||||
};
|
} camera;
|
||||||
struct lod_set {
|
struct {
|
||||||
// KR_STRUCTURE_TYPE_NODE_LOD_SET
|
// KR_STRUCTURE_TYPE_NODE_LOD_SET
|
||||||
// No additional members
|
// No additional members
|
||||||
};
|
} lod_set;
|
||||||
struct lod_group {
|
struct {
|
||||||
// KR_STRUCTURE_TYPE_NODE_LOD_GROUP
|
// KR_STRUCTURE_TYPE_NODE_LOD_GROUP
|
||||||
float min_distance;
|
float min_distance;
|
||||||
float max_distance;
|
float max_distance;
|
||||||
kraken::Vector3 reference_min;
|
kraken::Vector3 reference_min;
|
||||||
kraken::Vector3 reference_max;
|
kraken::Vector3 reference_max;
|
||||||
bool use_world_units;
|
bool use_world_units;
|
||||||
};
|
} lod_group;
|
||||||
struct light {
|
struct {
|
||||||
kraken::Vector3 color;
|
kraken::Vector3 color;
|
||||||
float intensity;
|
float intensity;
|
||||||
float decay_start;
|
float decay_start;
|
||||||
float flare_size;
|
float flare_size;
|
||||||
float flare_occlusion_size;
|
float flare_occlusion_size;
|
||||||
KrResourceMapIndex flate_texture;
|
KrResourceMapIndex flare_texture;
|
||||||
bool casts_shadow;
|
bool casts_shadow;
|
||||||
bool light_shafts;
|
bool light_shafts;
|
||||||
float dust_particle_density;
|
float dust_particle_density;
|
||||||
float dust_particle_size;
|
float dust_particle_size;
|
||||||
float dust_particle_intensity;
|
float dust_particle_intensity;
|
||||||
struct point {
|
struct {
|
||||||
// KR_STRUCTURE_TYPE_NODE_POINT_LIGHT
|
// KR_STRUCTURE_TYPE_NODE_POINT_LIGHT
|
||||||
// No additional members
|
// No additional members
|
||||||
};
|
} point;
|
||||||
struct directional {
|
struct {
|
||||||
// KR_STRUCTURE_TYPE_NODE_DIRECTIONAL_LIGHT
|
// KR_STRUCTURE_TYPE_NODE_DIRECTIONAL_LIGHT
|
||||||
// No additional members
|
// No additional members
|
||||||
};
|
} directional;
|
||||||
struct spot {
|
struct {
|
||||||
// KR_STRUCTURE_TYPE_NODE_SPOT_LIGHT
|
// KR_STRUCTURE_TYPE_NODE_SPOT_LIGHT
|
||||||
float inner_angle;
|
float inner_angle;
|
||||||
float outer_angle;
|
float outer_angle;
|
||||||
};
|
} spot;
|
||||||
};
|
} light;
|
||||||
struct sprite {
|
struct {
|
||||||
// KR_STRUCTURE_TYPE_NODE_SPRITE
|
// KR_STRUCTURE_TYPE_NODE_SPRITE
|
||||||
KrResourceMapIndex texture;
|
KrResourceMapIndex texture;
|
||||||
float alpha;
|
float alpha;
|
||||||
};
|
} sprite;
|
||||||
struct model {
|
struct {
|
||||||
// KR_STRUCTURE_TYPE_NODE_MODEL
|
// KR_STRUCTURE_TYPE_NODE_MODEL
|
||||||
float lod_min_coverage;
|
float lod_min_coverage;
|
||||||
bool receives_shadow;
|
bool receives_shadow;
|
||||||
@@ -206,22 +207,22 @@ typedef struct {
|
|||||||
kraken::Vector3 rim_color;
|
kraken::Vector3 rim_color;
|
||||||
KrResourceMapIndex mesh;
|
KrResourceMapIndex mesh;
|
||||||
KrResourceMapIndex light_map_texture;
|
KrResourceMapIndex light_map_texture;
|
||||||
};
|
} model;
|
||||||
struct collider {
|
struct {
|
||||||
// KR_STRUCTURE_TYPE_NODE_COLLIDER
|
// KR_STRUCTURE_TYPE_NODE_COLLIDER
|
||||||
KrResourceMapIndex mesh;
|
KrResourceMapIndex mesh;
|
||||||
uint64_t layer_mask;
|
uint64_t layer_mask;
|
||||||
float audio_occlusion;
|
float audio_occlusion;
|
||||||
};
|
} collider;
|
||||||
struct bone {
|
struct {
|
||||||
// KR_STRUCTURE_TYPE_NODE_BONE
|
// KR_STRUCTURE_TYPE_NODE_BONE
|
||||||
// No additional members
|
// No additional members
|
||||||
};
|
} bone;
|
||||||
struct locator {
|
struct {
|
||||||
// KR_STRUCTURE_TYPE_NODE_LOCATOR
|
// KR_STRUCTURE_TYPE_NODE_LOCATOR
|
||||||
// No additional members
|
// No additional members
|
||||||
};
|
} locator;
|
||||||
struct audio_source {
|
struct {
|
||||||
// KR_STRUCTURE_TYPE_NODE_AUDIO_SOURCE
|
// KR_STRUCTURE_TYPE_NODE_AUDIO_SOURCE
|
||||||
KrResourceMapIndex sample;
|
KrResourceMapIndex sample;
|
||||||
float gain;
|
float gain;
|
||||||
@@ -233,21 +234,21 @@ typedef struct {
|
|||||||
float rolloff_factor;
|
float rolloff_factor;
|
||||||
bool enable_obstruction;
|
bool enable_obstruction;
|
||||||
bool enable_occlusion;
|
bool enable_occlusion;
|
||||||
};
|
} audio_source;
|
||||||
struct ambient_zone {
|
struct {
|
||||||
// KR_STRUCTURE_TYPE_NODE_AMBIENT_ZONE
|
// KR_STRUCTURE_TYPE_NODE_AMBIENT_ZONE
|
||||||
char* pZoneName;
|
char* pZoneName;
|
||||||
float gradient;
|
float gradient;
|
||||||
float gain;
|
float gain;
|
||||||
KrResourceMapIndex sample;
|
KrResourceMapIndex sample;
|
||||||
};
|
} ambient_zone;
|
||||||
struct reverb_zone {
|
struct {
|
||||||
// KR_STRUCTURE_TYPE_NODE_REVERB_ZONE
|
// KR_STRUCTURE_TYPE_NODE_REVERB_ZONE
|
||||||
char* pZoneName;
|
char* pZoneName;
|
||||||
float gradient;
|
float gradient;
|
||||||
float gain;
|
float gain;
|
||||||
KrResourceMapIndex sample;
|
KrResourceMapIndex sample;
|
||||||
};
|
} reverb_zone;
|
||||||
};
|
};
|
||||||
} KrNodeInfo;
|
} KrNodeInfo;
|
||||||
|
|
||||||
@@ -260,6 +261,7 @@ KrResult KrMapResource(const KrMapResourceInfo* pMapResourceInfo);
|
|||||||
KrResult KrUnmapResource(const KrUnmapResourceInfo* pUnmapResourceInfo);
|
KrResult KrUnmapResource(const KrUnmapResourceInfo* pUnmapResourceInfo);
|
||||||
KrResult KrCreateBundle(const KrCreateBundleInfo* pCreateBundleInfo);
|
KrResult KrCreateBundle(const KrCreateBundleInfo* pCreateBundleInfo);
|
||||||
KrResult KrMoveToBundle(const KrMoveToBundleInfo* pMoveToBundleInfo);
|
KrResult KrMoveToBundle(const KrMoveToBundleInfo* pMoveToBundleInfo);
|
||||||
|
KrResult KrInitNodeInfo(KrNodeInfo* pNodeInfo, KrStructureType nodeType);
|
||||||
|
|
||||||
KrResult KrCreateScene(const KrCreateSceneInfo* pCreateSceneInfo);
|
KrResult KrCreateScene(const KrCreateSceneInfo* pCreateSceneInfo);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user