Пример #1
0
bool Camera::_set(const StringName& p_name, const Variant& p_value) {

	bool changed_all=false;
	if (p_name=="projection") {

		int proj = p_value;
		if (proj==PROJECTION_PERSPECTIVE)
			mode=PROJECTION_PERSPECTIVE;
		if (proj==PROJECTION_ORTHOGONAL)
			mode=PROJECTION_ORTHOGONAL;

		changed_all=true;
	} else if (p_name=="fov" || p_name=="fovy" || p_name=="fovx")
		fov=p_value;
	else if (p_name=="size" || p_name=="sizex" || p_name=="sizey")
		size=p_value;
	else if (p_name=="near")
		near=p_value;
	else if (p_name=="far")
		far=p_value;														
	else if (p_name=="keep_aspect")
		set_keep_aspect_mode(KeepAspect(int(p_value)));
	else if (p_name=="vaspect")
		set_keep_aspect_mode(p_value?KEEP_WIDTH:KEEP_HEIGHT);
	else if (p_name=="h_offset")
		h_offset=p_value;
	else if (p_name=="v_offset")
		v_offset=p_value;
	else if (p_name=="current") {
		if (p_value.operator bool()) {
			make_current();
		} else {
			clear_current();
		}
	} else if (p_name=="visible_layers") {
		set_visible_layers(p_value);
	} else if (p_name=="environment") {
		set_environment(p_value);
	} else
		return false;
		
	_update_camera_mode();
	if (changed_all)
		_change_notify();
	return true;

}
Пример #2
0
bool Camera::_set(const StringName& p_name, const Variant& p_value) {

	bool changed_all=false;
	if (p_name=="projection") {

		int proj = p_value;
		if (proj==PROJECTION_PERSPECTIVE)
			mode=PROJECTION_PERSPECTIVE;
		if (proj==PROJECTION_ORTHOGONAL)
			mode=PROJECTION_ORTHOGONAL;

		changed_all=true;
	} else if (p_name=="fov")
		fov=p_value;
	else if (p_name=="size")
		size=p_value;
	else if (p_name=="near")
		near=p_value;
	else if (p_name=="far")
		far=p_value;														
	else if (p_name=="vaspect")
		set_use_vertical_aspect(p_value);
	else if (p_name=="current") {
		if (p_value.operator bool()) {
			make_current();
		} else {
			clear_current();
		}
	} else if (p_name=="visible_layers") {
		set_visible_layers(p_value);
	} else if (p_name=="environment") {
		set_environment(p_value);
	} else
		return false;
		
	_update_camera_mode();
	if (changed_all)
		_change_notify();
	return true;

}