Exemplo n.º 1
0
	ConstantBackgroundEmitter(Stream *stream, InstanceManager *manager)
	 : Emitter(stream, manager) {
		m_radiance = Spectrum(stream);
		m_sceneBSphere = BSphere(stream);
		m_geoBSphere = BSphere(stream);
		configure();
	}
Exemplo n.º 2
0
	void CameraNode::renderHelper(AbstractRender *render, bool selected) const {

		mat4 m = camera.getFrustum().getModelview();
		m.inverse();
		render->setMatrix(m);
		render->drawFrustum(camera.getFrustum());
		render->setMatrix(mat4());
		render->drawSphere(BSphere(camera.pos, 0.1f));
		vec3 p0 = camera.pos + camera.getDirection() * camera.getMinDistance();
		vec3 p1 = camera.pos + camera.getDirection() * camera.getMaxDistance();
		render->drawSphere(BSphere(p0, 0.1f));
		render->drawSphere(BSphere(p1, 0.1f));
		render->drawLine(Line(p0, p1));
	}
Exemplo n.º 3
0
	ConstantLuminaire(Stream *stream, InstanceManager *manager) 
		: Luminaire(stream, manager) {
		m_intensity = Spectrum(stream);
		m_bsphere = BSphere(stream);
		m_surfaceArea = 4 * m_bsphere.radius * m_bsphere.radius * M_PI;
		m_invSurfaceArea = 1/m_surfaceArea;
	}
Exemplo n.º 4
0
	void EntityNode::renderHelper(AbstractRender *render, bool selected) const {

		render->setMatrix(mat4());
		vec3 p = getPos(true);
		render->drawSphere(BSphere(p, 0.1));
		render->setMatrix(origin);
		render->drawLine(Line(vec3(), vec3(0.2, 0, 0)));
		render->drawLine(Line(vec3(), vec3(0, 0.2, 0)));
		render->drawLine(Line(vec3(), vec3(0, 0, 0.2)));

	}
Exemplo n.º 5
0
	bool EntityNode::trace(const Line &line, TracePoint &p, bool fs, bool fd) const {
		Line iLine = line;
		iLine.src = inverse * iLine.src;
		iLine.dst = inverse * iLine.dst;
		bool ret = BSphere(vec3(0, 0, 0), 0.1).trace(iLine, p, fs, fd);
		if (ret) {
			p.point = origin * p.point;
			p.normal = normalize(origin * p.normal - origin.getPos());
		}
		return ret;
	}
Exemplo n.º 6
0
	ParticleSystemNode::ParticleSystemNode(Scene *scene_) : Node(scene_) {
		type = NODE_PARTICLESYSTEM;
		timeToSpawn = 0;

		box = BBox(vec3(-0.5, -0.5, -0.5), vec3(0.5, 0.5, 0.5));
		particleBox = box;
		sphere = BSphere(vec3(), 0.5);
		first_update = true;

		setSpawnRate(5.0f);
		setLife(5.0f, 0.0f);
		setSize(0.1f, 0.0f);
		setGrowth(1.0f, 0.0f);
		setEmitter(EMITTER_BOX);
		setColor(vec3(0.5f, 0.5f, 0.0f), vec3(1.0f, 0.0f, 0.0f));
		setSpeed(0.1f, 0.0f, 0.0f);
		setGravity(0.0f);
		setName(getTypeName());
	}
Exemplo n.º 7
0
BSphere BBox::BoundingSphere() const {
	const Point c = .5f * (pMin + pMax);
	const float rad = Inside(c) ? Distance(c, pMax) : 0.f;

	return BSphere(c, rad);
}
Exemplo n.º 8
0
BSphere AABB::getBSphere() const {
	Point3 center = getCenter();
	return BSphere(center, (center - max).length());
}
Exemplo n.º 9
0
	void PhysicsNode::invalidate() {
		box = BBox(vec3(-0.5f, -0.5f, -0.5f), vec3(0.5f, 0.5f, 0.5f));
		sphere = BSphere(vec3(0.0f, 0.0f, 0.0f), vec3(0.5f, 0.5f, 0.5f).length());
	}
Exemplo n.º 10
0
	DirectionalEmitter(Stream *stream, InstanceManager *manager)
	 : Emitter(stream, manager) {
		m_normalIrradiance = Spectrum(stream);
		m_bsphere = BSphere(stream);
		configure();
	}