PDirectionalLight::PDirectionalLight(const pchar *name, PNode *node) : PAbstractLight(P_LIGHT_DIRECTIONAL, name, node) { P_OBJECT_INITIALIZE_PROPERTY(PAbstractLight); P_OBJECT_REGISTER_PROPERTY("direction", &m_direction); P_OBJECT_REGISTER_PROPERTY("castshadow", &m_castShadow); m_direction = pVector3(-1.0f, 0.0f, 0.0f); }
PCamera::PCamera(const pchar *name, PNode *parent) : PNode(name, parent->scene(), parent, false) { P_OBJECT_INITIALIZE_PROPERTY(PNode) P_OBJECT_REGISTER_PROPERTY("projection", &m_projection); P_OBJECT_REGISTER_PROPERTY("fixed", &m_fixed); const puint32 *viewport = m_scene->context()->rect(); setViewport(pfloat32(viewport[0]), pfloat32(viewport[1]), pfloat32(viewport[2]), pfloat32(viewport[3])); m_fixed = false; }
PNode::PNode(const pchar *name, PScene *scene, PNode *parent, pbool isDrawable) : PObject() { P_OBJECT_INITIALIZE_PROPERTY(PObject); P_OBJECT_REGISTER_PROPERTY("name", &m_name); P_OBJECT_REGISTER_PROPERTY("transform", &m_localTransform); m_drawable = isDrawable; PASSERT(name != P_NULL); m_name = PString(name); PASSERT(scene != P_NULL); m_scene = scene; m_parent = parent; if (m_parent != P_NULL) { m_parent->addChild(this); } }