MCPcopy Create free account
hub / github.com/Redot-Engine/redot-engine / _parse_camera

Method _parse_camera

editor/import/3d/collada.cpp:722–776  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

720}
721
722void Collada::_parse_camera(XMLParser &p_parser) {
723 if (!(state.import_flags & IMPORT_FLAG_SCENE)) {
724 if (!p_parser.is_empty()) {
725 p_parser.skip_section();
726 }
727 return;
728 }
729
730 String id = p_parser.get_named_attribute_value("id");
731
732 state.camera_data_map[id] = CameraData();
733 CameraData &camera = state.camera_data_map[id];
734
735 while (p_parser.read() == OK) {
736 if (p_parser.get_node_type() == XMLParser::NODE_ELEMENT) {
737 String name = p_parser.get_node_name();
738
739 if (name == "perspective") {
740 camera.mode = CameraData::MODE_PERSPECTIVE;
741 } else if (name == "orthographic") {
742 camera.mode = CameraData::MODE_ORTHOGONAL;
743 } else if (name == "xfov") {
744 p_parser.read();
745 camera.perspective.x_fov = p_parser.get_node_data().to_float();
746
747 } else if (name == "yfov") {
748 p_parser.read();
749 camera.perspective.y_fov = p_parser.get_node_data().to_float();
750 } else if (name == "xmag") {
751 p_parser.read();
752 camera.orthogonal.x_mag = p_parser.get_node_data().to_float();
753
754 } else if (name == "ymag") {
755 p_parser.read();
756 camera.orthogonal.y_mag = p_parser.get_node_data().to_float();
757 } else if (name == "aspect_ratio") {
758 p_parser.read();
759 camera.aspect = p_parser.get_node_data().to_float();
760
761 } else if (name == "znear") {
762 p_parser.read();
763 camera.z_near = p_parser.get_node_data().to_float();
764
765 } else if (name == "zfar") {
766 p_parser.read();
767 camera.z_far = p_parser.get_node_data().to_float();
768 }
769
770 } else if (p_parser.get_node_type() == XMLParser::NODE_ELEMENT_END && p_parser.get_node_name() == "camera") {
771 break; //end of <asset>
772 }
773 }
774
775 COLLADA_PRINT("Camera ID:" + id);
776}
777
778void Collada::_parse_light(XMLParser &p_parser) {
779 if (!(state.import_flags & IMPORT_FLAG_SCENE)) {

Callers

nothing calls this directly

Calls 9

skip_sectionMethod · 0.80
to_floatMethod · 0.80
get_node_dataMethod · 0.80
CameraDataClass · 0.70
is_emptyMethod · 0.45
readMethod · 0.45
get_node_typeMethod · 0.45
get_node_nameMethod · 0.45

Tested by

no test coverage detected